我对一对多的关系有问题,我只想使用用户ID,我不想创建一个新的用户ID,我把我的代码放在了
@PostMapping("/createFavorite")
public ResponseEntity<Favorite> createFavorite(@RequestBody Favorite favorite) {
return new ResponseEntity<Favorite>(userServiceImpl.createFavorite(favorite), HttpStatus.OK);
}
我最喜欢的实体是
public class Favorite implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@Column(name = "element")
private String element;
@ManyToOne
@JoinColumn(name = "user_fk")
User user;
我大摇大摆地明白了
{
"element": "string",
"user": {
"email": "string",
"id": 0,
"life": "suspend",
"name": "string",
"password": "string"
}
}
我不想创建新用户, 用户已经创建,我只需要使用你的ID来引用它
最佳答案
您需要创建一个新用户或检索任何现有用户并设置在 Collection 夹对象中。如果存在 favorite.user.id ,则不会创建新用户。
即使您应该将 Cascade 设置为 CascadeType.DETACH 以避免从喜爱的对象创建或更新 User 对象。如果 favorite.user.id 为 null,它将抛出错误,而不是创建新的用户对象。
@ManyToOne(cascade = CascadeType.DETACH)
@JoinColumn(name = "user_fk")
User user;
关于java - 一对多关系的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57067735/