在下面找到我的代码
PensionerDetails.java
package com.pension.model;
import jakarta.persistence.Column;
import jakarta.persistence.Embedded;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Entity
@AllArgsConstructor
@NoArgsConstructor
@Data
@Table(name="pensioner_detail")
public class PensionerDetail {
@Id
private String aadhar;
private String name;
private String DOB;
private String Pan;
private Double salary;
private Double allowance;
private String pension_class;
@Embedded
@Column(name="bank")
private Bank bank;
@Override
public String toString() {
return "PensionerDetail [aadhar=" + aadhar + ", name=" + name + ", DOB=" + DOB + ", Pan=" + Pan + ", salary="
+ salary + ", allowance=" + allowance + ", pension_class=" + pension_class + ", bank=" + bank + "]";
}
}
银行.java
package com.pension.model;
import jakarta.persistence.Embeddable;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Embeddable
@AllArgsConstructor
@Data
@NoArgsConstructor
public class Bank {
private String bank_name;
private long acc_num;
private String bank_type;
@Override
public String toString() {
return "Bank [bank_name=" + bank_name + ", acc_num=" + acc_num + ", bank_type=" + bank_type + "]";
}
}
Pensionrepo.java
package com.pension.repository;
import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import com.pension.model.PensionerDetail;
@Repository
public interface Pensionrepo extends JpaRepository<PensionerDetail, String>{
//
// @Query("select p1_0.aadhar,p1_0.DOB,p1_0.Pan,p1_0.allowance,p1_0.acc_num,p1_0.bank_name,p1_0.bank_type,p1_0.name,p1_0.pension_class,p1_0.salary from PensionerDetail p1_0 where p1_0.aadhar=?1")
public List<PensionerDetail> findByAadhar(String adhar);
}
PensionService.java
package com.pension.service;
import java.util.List;
import java.util.Optional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.pension.model.PensionerDetail;
import com.pension.repository.Pensionrepo;
@Service
public class PensionService {
@Autowired
private Pensionrepo pensionrepo;
public String savePensionDetails(PensionerDetail pensionerDetail) {
pensionrepo.save(pensionerDetail);
return "PensionDetails are saved successfully";
}
public Optional<PensionerDetail> getPensionByAadhar(String Aadhar) {
// TODO Auto-generated method stub
System.out.println(pensionrepo.findById(Aadhar));
return pensionrepo.findById(Aadhar);
}
public List<PensionerDetail> pensionerDetails() {
// TODO Auto-generated method stub
return pensionrepo.findAll();
}
}
PensionController.java
package com.pension.controller;
import java.util.List;
import java.util.Optional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import com.pension.model.PensionerDetail;
import com.pension.service.PensionService;
@RestController
public class PensionController {
@Autowired
private PensionService pensionService;
@PostMapping("/savePensionDetails")
public String savePension( @RequestBody PensionerDetail pensionerDetail) {
return pensionService.savePensionDetails(pensionerDetail);
}
@GetMapping("/getByAadhar/{aadhar}")
public Optional<PensionerDetail> getPensionByAadhar(@PathVariable String aadhar) {
return pensionService.getPensionByAadhar(aadhar);
}
@GetMapping("/all")
public List<PensionerDetail> pensionerDetails(){
System.out.println(pensionService.pensionerDetails());
return pensionService.pensionerDetails();
}
}
应用程序.属性
spring.datasource.url=jdbc:mysql://localhost/pension
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.defer-datasource-initialization=true
我已经创建了表并插入了值,但是当我调用 GetMapping 方法时,我可以在控制台中看到数据,但在邮递员中它只显示空列表。有人可以帮我解决这个问题吗,我刚刚开始学习 spring。
我期待解决我的问题,因为在控制台中我可以看到数据,那么为什么它没有在邮递员中打印数据。
经过评论中的一些讨论。要在邮递员响应正文中获得结果,您应该做一些更改。
控制器层的Post方法应该有一个
@RequestBody
注释:
@PostMapping("/savePensionDetails")
public String savePension(@RequestBody PensionerDetail pensionerDetail) {
return pensionService.savePensionDetails(pensionerDetail);
}
在邮递员中使用你写的评论中的对象,我得到了下一个结果:
{
"name": "sravani",
"DOB": "21/02/2001",
"Pan": "Pan",
"salary": 123.24,
"allowance": 22.12,
"pension_class": "pension",
"bank": {
"bank_name": "sbi",
"acc_num": 1234,
"bank_type": "govt"
}
}
毕竟,当我调用
/all
端点时,我将得到下一个结果: