Ich muss eine Karte mit einem Basisschlüssel und einem Entity-Wert beibehalten. dies läuft, wenn ich versuche, nicht die gleiche zweite Einheit zweimal hinzuzufügen:Wie man eine ManyToMany Map <Basic, Entity> mit JPA (Eclipselink) abbildet
@ManyToMany
@JoinTable(name="THIRD_TABLE")
@MapKeyColumn(name="INTEGER_COLUMN", table="THIRD_TABLE")
private Map<Integer, SecondEntity> secondEntities = new HashMap<>();
aber wenn ich versuche, (year1: secondE_1, year2: secondE_1) meine app wirft dies:
java.sql.SQLException: Violation of unique constraint SYS_PK_294:
duplicate value(s) for column(s) FIRSTENTITY_ID,SECONDENTITY_ID in statement [INSERT INTO COVERANALYSIS_EXPENSERECORDSETS (secondentity_id, firstentity_id, INTEGER_COLUMN) VALUES (?, ?, ?)]
Error Code: -104
scheint Der Mapkey wird nicht ordnungsgemäß verwendet. Ich habe einige andere Anmerkungen und endlose Google-Suchen versucht, aber nichts scheint zu arbeiten.
bitte helfen Sie mir.
EclipseLink lässt standardmäßig keine Duplikate in Sammlungen zu, obwohl dies hier funktionieren sollte. Sie müssen Ihre DDL für die Join-Tabelle ändern, damit der Zuordnungsschlüssel und die Fremdschlüssel als zusammengesetzte PK verwendet werden. – Chris