1. ホーム
  2. java

[解決済み] コレクションへの共有参照が見つかりました org.hibernate.HibernateException

2022-03-04 04:26:41

質問

このようなエラーメッセージが表示されました。

error: Collection.Person.relatedPersons への共有参照が見つかりました。

を実行しようとしたところ addToRelatedPersons(anotherPerson) :

person.addToRelatedPersons(anotherPerson);
anotherPerson.addToRelatedPersons(person);

anotherPerson.save();
person.save();

私のドメインです。

Person {

 static hasMany = [relatedPersons:Person];

}

なぜこのような現象が起こるのか、何か心当たりはありますか?

どうすればいいですか?

を共有する複数のエンティティインスタンスを永続化しようとすると、Hibernate はこのエラーを表示します。 同じ コレクション参照 (すなわち、コレクションの等質性とは対照的なコレクションの同一性)。

を意味することに注意してください。 コレクション であって、コレクション要素ではない、言い換えれば relatedPersons の両方で personanotherPerson は同じでなければなりません。おそらく、エンティティがロードされた後に、そのコレクションをリセットしているのではないでしょうか?あるいは、両方の参照を同じコレクション・インスタンスで初期化したのでしょうか?