Hibernate 对 Post-mapping 方法做出响应,Spring boot 在向 MySQL 数据库发送请求后返回 null

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

破坏编程后,使用Postman进行Api客户端测试,从控制器,响应数据不断返回Null Null

代码一切似乎都很好,没有错误消息或提示,但 Hibernate 不断返回 null null 并且没有将帖子插入 MySQL 数据库中的数据(下面的代码,请帮助)

@Entity
@AllArgsConstructor
@NoArgsConstructor
@Data
@Table(name = "student_lib")
public class StudentLibrary {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    
    private Long id;
    private String name;
    private String addressess;
    private String email;
    
    
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getAddressess() {
        return addressess;
    }
    public void setAddressess(String addressess) {
        this.addressess = addressess;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    
    public StudentLibrary(Long id, String name, String addressess, String email) {
        super();
        this.id = id;
        this.name = name;
        this.addressess = addressess;
        this.email = email;
    }

服务

@Service
public class LibService {

    
    @Autowired
    
    private LibRepository repository;
    
    public StudentLibrary getLibraryById(Long id) {
        
    return repository.findById(id).get();
    }
    
    public StudentLibrary insertLibrary(StudentLibrary studentLibrary) {
        
        return repository.save(studentLibrary);
    }
}

控制器

@RestController
@RequestMapping("/Api")
public class LibController {
    @Autowired 
    LibService service;
    
    @GetMapping("/Lib")
    
    public StudentLibrary getAllDataById(Long id) {
        
        return service.getLibraryById(id);
    }
    
    @PostMapping("/save")
    public StudentLibrary insertData(StudentLibrary studentLibrary) {
        
        return service.insertLibrary(studentLibrary);
    }

}

结果与邮递员回复

{
    "id": 12,
    "name": null,
    "addressess": null,
    "email": null
}
spring boot
1个回答
1
投票

您的 POST api 的 StudentLibrary 参数之前缺少 @RequestBody 注释,否则它将被 HTTP 正文获取。

关于GET,如果Long id是通过URL传递的,则应该使用@PathVariable("id")并将url修改为@GetMapping("/Lib/{id}")(包括括号)

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