Hibernate ManyToMany更新错误

时间:2015-08-21 10:47:32

标签: java hibernate many-to-many

我遇到了hibernate和@ManyToMany注释的问题。请查看两个实体类:

公司实体:

@ManyToMany
@JoinTable(name="company_user_tab",
     joinColumns={@JoinColumn(name="company_id")},
     inverseJoinColumns={@JoinColumn(name="user_id")})
private Set<User> users = new HashSet<User>();

... getters and setters

用户实体:

@ManyToMany(mappedBy="users")
private Set<Company> companies = new HashSet<Company>();

... getters and setters

方案: 我创建了第一个用户和第一个公司并正确连接它们。

创建新用户并尝试使用新用户更新现有公司时出现问题。我在company_user_tab上收到数据库错误:“重复键值违反了唯一约束”

看起来像hibernate插入再次连接表第一个用户女巫与公司正确关联。

我如何更新对象?

entityManager.merge(object);

当然,我在用户之前添加到公司和公司,例如:

user.getCompanies().add(company);
company.getUsers().add(user);

感谢您的建议。

1 个答案:

答案 0 :(得分:0)

试试这个代码
@ManyToMany(cascade = {CaseCadeType.ALL})
@JoinTable(名称= “company_user_tab”,
     joinColumns = {@ JoinColumn(名称= “COMPANY_ID”)},
     inverseJoinColumns = {@ JoinColumn(名称= “USER_ID”)})
private Set users = new HashSet();

......吸气鬼和二传手