マップを含むエンティティを保存しようとすると、次の問題が発生します。
これは私のエンティティがどのように見えるかです:
public Class MyEntity {
private Map<EnumType, MyEmbedabble> map;
.....
これは、orm.xml ファイルの関連部分です。
<element-collection name="map" target-class="my.package.MyEmbedabble">
<map-key-enumerated>STRING</map-key-enumerated>
<map-key-column name="map_key"/>
<collection-table>
<join-column name="entityId"/>
</collection-table>
</element-collection>
エンティティ オブジェクトを保存すると問題なく動作しますが、そのオブジェクトを再度保存すると、要素コレクションのテーブルのエントリが複数回表示されることに気付きました。これが発生し、既存のマップ エントリを編集して保存しようとすると、次の例外が発生します。
Caused by: org.hibernate.jdbc.BatchedTooManyRowsAffectedException: Batch update returned unexpected row count from update [0]; actual row count: 5; expected: 1
at org.hibernate.jdbc.Expectations$BasicExpectation.checkBatched(Expectations.java:89)
at org.hibernate.jdbc.Expectations$BasicExpectation.verifyOutcome(Expectations.java:73)
at org.hibernate.engine.jdbc.batch.internal.NonBatchingBatch.addToBatch(NonBatchingBatch.java:57)
at org.hibernate.persister.collection.BasicCollectionPersister.doUpdateRows(BasicCollectionPersister.java:258)
at org.hibernate.persister.collection.AbstractCollectionPersister.updateRows(AbstractCollectionPersister.java:1630)
at org.hibernate.action.internal.CollectionUpdateAction.execute(CollectionUpdateAction.java:85)
これに関するご意見をお待ちしております。
ありがとう!