在客户端将数据插入到sample_category表中时出现此错误。 这是我的控制器方法。
@PostMapping("/request")
public SampleRequest createRequest(@Valid @RequestBody SampleRequest sampleRequest) throws ResourceNotFoundException{
User user = userRepository.findById(sampleRequest.getUser().getId())
.orElseThrow(() -> new ResourceNotFoundException("User Not Found"));
Category category = categoryRepository.findById(sampleRequest.getCategory().getId())
.orElseThrow(()-> new ResourceNotFoundException("Category Not Found"));
sampleRequest.setUser(user);
sampleRequest.setCategory(category);
return sampleRequestRepository.save(sampleRequest);
}
这是Model类。
@Entity
@Table(name = "sample_requests")
public class SampleRequest extends DateAudit {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@NotNull
private String title;
@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "user_id", nullable = false)
@OnDelete(action = OnDeleteAction.CASCADE)
private User user;
@ManyToOne(fetch = FetchType.LAZY,optional = false)
@JoinColumn(name = "category_id", nullable = false)
@OnDelete(action = OnDeleteAction.CASCADE)
private Category category;
private String description;
private Boolean approved;
@NotNull
private Long quantity;
// Getter和setters
这是客户端请求。
{
"id" : "1",
"title" : "Test Title",
"user": {
"user" : 7
},
"category": {
"category" : 1
},
"description" : "test description",
"quantity" : "2"
}
我需要添加新的样品请求。
答案 0 :(得分:0)
在您的JSON中,您没有在id
节点中发送id
。这就是用户和类别对象的id
为空的原因。
并且findById
仅接受不为null的id,否则将抛出执行(Ref)。 JSON应该像
{
...
"user": {
"id" : 7
},
"category": {
"id" : 1
}
}