2013-03-28 83 views
1

中保留一個具有順序和重複的列表我基本上有兩個實體Entity1Entity2Entity1包含此位代碼:在JPA/EclipseLink

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

Entity2包含了一些東西,但沒有相關的。我想添加一些實例到列表e,最重要的是我想添加一些重複(相同的參考)兩次或更多的名單。儘管如此,我仍然希望JPA堅持這兩個,我希望JPA堅持列表的順序。

到目前爲止,這項工作,如果我只添加獨特的項目。如果我添加一個副本,JPA實際上想要保留正確的數據(ID od Entity1,Entity2的ID和順序),但由於關係表的主鍵只有兩個ID,所以JPA會引發重複的主鍵錯誤。

我該如何解決這個問題?

+0

誰創建DDL?它應該包含一個帶有order列和entity2 id列的主鍵定義,而不是e1 id和e2 id。 Hibernate的自動DDL創建一個工作定義。 –

+0

eclipselink做到了這一點 – Simiil

回答

2

EclipseLink目前不支持OneToMany關係的重複項。重複支持(基本)ElementCollection映射。

請投票給錯誤, https://bugs.eclipse.org/bugs/show_bug.cgi?id=256978

的最佳解決方案是連接表映射到另一個實體,並定義一個1-M將其與1-1到目標。