我在应用程序中有2个实体:组和用户,它们之间有ManyToMany连接。创建用户时,它应该加入几个现有的组。
我看到了一些示例,展示了如何更新3个表(添加了2个enities,并在join表中创建了一个新行)。在我的情况下,不应更新Groups表,我得到org.hibernate.exception.ConstraintViolationException,因为3个查询正在运行,其中一个正在尝试插入表中已存在的Group。
感谢
答案 0 :(得分:0)
如下所示的联接表可能会解决您的问题;
@Entity
@Table(name = "Groups")
public class Group {
@ManyToMany
@JoinTable(name = "Group_Users", joinColumns = {
@JoinColumn(name = "group_id", referencedColumnName = "id") }, inverseJoinColumns = {
@JoinColumn(name = "user_id", referencedColumnName = "id") })
private List<User> users;
创建用户时,它应该像这样加入几个现有的组;
<强> Group_Users 强>
Group_id | USER_ID 强>
Group_1 | User_1
Group_2 | User_1
Group_3 | USER_1