JPAを使用するときは、エンティティに対してhashCode()/ equals()を実装する必要があります。 Eclipseには、クラスのメソッドを生成するための優れた機能があります。関連するエンティティのhashCode()メソッド
しかし、どのフィールドを選択する必要がありますか? 私はそれを読んで長いIDを選択します。あなたのエンティティのフィールドは良い考えではありません。 (right ?, why?) hashCode()/ equals()メソッドのビジネスキー(エンティティを識別するために使用できるエンティティのいくつかのフィールド)を使用する必要があります。
AとBの1:nの関係... hashcode()メソッドでこれらの参照を使用することをお勧めしますか? 私はそうすることがありますが、時々java.util.ConcurrentModificationExceptionまたはStackoverflow例外が発生します。 コレクション変数はどうですか?私は私のhashcode()関数でそれらを使用すべきではないと思う... 誰かが私にヒントを与えることができますか?
ありがとうございます:)私はそれを理解しているので、オブジェクトが作成されたとき(データベースに保持されていないとき)にこのフィールドがnullになるため、idプライマリキーを使用すべきではありません。したがって、新しいオブジェクトはすべて別の新しいオブジェクトと同じになります。問題は、自分のエンティティにユニークであると考えられる代替フィールドがない場合はどうなりますか? ID以外のフィールドを使用する必要がありますか? – Moonlit
抽象的には、2つのオブジェクトがどのように等しくなると思いますか?つまり、DBを使用していないのでIDがない場合、2つのBeanの等価性をどのように定義しますか?すべてのフィールドをチェックするだけですか?何が起こっているのかをよりよく理解できるように、あなたの質問にオブジェクトの構造を投稿する必要があるかもしれないようです。 –