@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue
int id;
String email;
String password;
@Column(unique = true)
String username;
}
游戏桌
@Entity
@Table(name = "games")
public class Game implements Serializable {
@Id
@GeneratedValue
@Column(name = "id")
int id;
@ManyToOne(cascade = CascadeType.ALL)
private User user1;
@ManyToOne(cascade = CascadeType.ALL)
private User user2;
}
当我尝试插入记录时,它给出了错误:
传递给persist的分离实体:ttt.model.User;
答案 0 :(得分:0)
Hibernate持久化方法旨在移动实体from the NEW state to MANAGED one。将实体与给定的持久性上下文关联后,您应该使用merge,而不是persist。
现在,我认为您的映射不遵循标准的ORM实体关联标准。
这些问题非常重要,因为你经常有父母协会方面和儿童协会方面。父母需要先被保存,然后是孩子。
这是因为孩子与父母有一个FK关联,如果它被标记为NOT NULL,那么为什么父母需要先被保存是可以理解的。