在邮递员中未获取 Get 方法返回值

问题描述 投票:0回答:1

在下面找到我的代码

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

Find my mysql table detals here

我已经创建了表并插入了值,但是当我调用 GetMapping 方法时,我可以在控制台中看到数据,但在邮递员中它只显示空列表。有人可以帮我解决这个问题吗,我刚刚开始学习 spring。

我期待解决我的问题,因为在控制台中我可以看到数据,那么为什么它没有在邮递员中打印数据。

Postman image

对于 PostMapping 请求,我收到此错误 error

这就是我在邮递员中传递值的方式postman postmapping

java spring-boot postman spring-restcontroller
1个回答
0
投票

经过评论中的一些讨论。要在邮递员响应正文中获得结果,您应该做一些更改。

控制器层的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
端点时,我将得到下一个结果:

© www.soinside.com 2019 - 2024. All rights reserved.