基本キーとエンティティ値を使用してマップを保持する必要があります。これは私が二度同じ第二のエンティティを追加しようとしていない場合は、実行します:ManyToManyマップ<Basic、Entity>とJPA(eclipselink)のマッピング方法
@ManyToMany
@JoinTable(name="THIRD_TABLE")
@MapKeyColumn(name="INTEGER_COLUMN", table="THIRD_TABLE")
private Map<Integer, SecondEntity> secondEntities = new HashMap<>();
が、私は(YEAR1:secondE_1、YEAR2:secondE_1を)しようとすると私のアプリはこれをスロー:
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
は以下のように思えますmapkeyは必要に応じて使用されません。私はいくつかの他の注釈と無限のGoogle検索を試しましたが、何も動作していないようです。
私を助けてください。
EclipseLinkではデフォルトでコレクションに重複を許可していませんが、ここで動作するはずです。マップキーと外部キーが複合PKとして使用されるように、結合テーブルのDDLを変更する必要があります。 – Chris