JPA中的ManyToMany:如何将记录插入到连接表中

时间:2011-02-15 13:05:41

标签: hibernate jpa many-to-many

我在应用程序中有2个实体:组和用户,它们之间有ManyToMany连接。创建用户时,它应该加入几个现有的组。

我看到了一些示例,展示了如何更新3个表(添加了2个enities,并在join表中创建了一个新行)。在我的情况下,不应更新Groups表,我得到org.hibernate.exception.ConstraintViolationException,因为3个查询正在运行,其中一个正在尝试插入表中已存在的Group。

感谢

1 个答案:

答案 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