通过Hibernate更新多对多关系的记录

时间:2016-11-28 10:55:55

标签: java database hibernate many-to-many

我有两个班级,Document班级和Role班级,以及他们之间的@ManyToMany关系。

我试图获取一份文件,然后我获得了所有这些角色并用它们填写了文档集。

现在,当我更新文档集(插入新角色或删除现有角色)然后通过session.update(doc)更新文档对象时,Hibernate不会在{{1}中执行任何插入或删除语句} table,它只更新文档和角色记录。

注意:两个表中的lazy属性都是“lazy = true”。

1 个答案:

答案 0 :(得分:0)

问题是我使用双向@ManyToMany关系(这意味着文档具有角色集,角色具有文档集),这样当我创建文档并向其添加一些角色时,即使我必须将此文档添加到集合中的每个角色。 当我使用单向@ManyToMany关系(这意味着只有一方有一组其他类)时,我只是用一些角色填充文档集。

这篇文章非常有用

https://howtoprogramwithjava.com/hibernate-manytomany-unidirectional-bidirectional/