2

我基本上有两个实体Entity1Entity2. Entity1包含这段代码:

@OneToMany(cascade=CascadeType.PERSIST)
@OrderColumn
List<Entity2> e = new LinkedList<Entity2>();

Entity2包含一些东西,但没有任何相关性。我想将一些实例添加到列表中e,最重要的是我想将一些重复项(相同的引用)添加到列表中两次或更多。我仍然希望 JPA 保持两者,并且我希望 JPA 保持列表的顺序。

到目前为止,如果我只添加独特的项目,这可行。如果我添加一个重复项,JPA 实际上想要保留正确的数据(ID od Entity1、Entity2 的 ID 和顺序),但由于关系表的主键只有两个 ID,JPA 会引发重复的主键错误。

我该如何解决这个问题?

4

1 回答 1

2

EclipseLink 当前不支持 OneToMany 关系的重复。重复是对(基本)ElementCollection 映射的支持。

请为错误投票, https://bugs.eclipse.org/bugs/show_bug.cgi?id=256978

最好的解决方案是将连接表映射到另一个实体,并为它定义一个 1-m,对目标定义一个 1-1。

于 2013-04-01T14:34:22.737 回答