坚持一个列表与秩序和重复在JPA / EclipseLink的(Persist a List wit

2019-08-18 03:54发布

我基本上有两个实体Entity1Entity2Entity1包含代码的此位:

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

Entity2包含了一些东西,但没有相关的。 我想某些情况下,添加到列表中e ,最重要的是我想两次或更多次添加一些重复的(相同的)到列表中。 不过我想JPA坚持两个,我想JPA坚持在列表中的顺序。

到目前为止,这工作,如果我只添加独特的项目。 如果我添加一个重复,JPA实际上想要坚持正确的数据(ID OD ENTITY1,ENTITY2以及订单的ID),但由于关系表的主键只有两个ID,JPA抛出一个重复的主键错误。

我怎样才能解决这个问题?

Answer 1:

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

请投票选出的bug, https://bugs.eclipse.org/bugs/show_bug.cgi?id=256978

最佳的解决方案是映射连接表给另一个实体,并定义一个1-M将其与1-1到目标。



文章来源: Persist a List with order and duplicates in JPA/EclipseLink