我有一个多对多的关系,链接表有一个附加字段。因此,根据以下教程,该关系是通过 2 个一对多关系完成的:
我有 2 个实体,第三个实体定义了链接表并由一个 @Embeddable ID 字段组成。
关系定义为:
@OneToMany(fetch = FetchType.LAZY, mappedBy = "pk.compound", cascade = CascadeType.ALL)
@OneToMany(fetch = FetchType.LAZY, mappedBy = "pk.structure", cascade = CascadeType.ALL)
是 pk = @Embeddable ID 字段。插入和删除工作正常但是当我打电话时
session.merge(compound);
我得到一个 StackOverflowError 并且日志显示 hibernate 正在制作大量的选择语句。请注意,数据库恰好包含 1 个关联,例如。1 个化合物包含 2 个结构。看起来休眠进入了一个无限循环。
我也在http://giannigar.wordpress.com/2009/09/04/mapping-a-many-to-many-join-table-with-extra-column-using-jpa/上看到了这个解决方案,但是如何你更新了吗?