破坏编程后,使用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
}
您的 POST api 的 StudentLibrary 参数之前缺少 @RequestBody 注释,否则它将被 HTTP 正文获取。
关于GET,如果Long id是通过URL传递的,则应该使用@PathVariable("id")并将url修改为@GetMapping("/Lib/{id}")(包括括号)