JPAのエンティティにはequalsとhashCodeを実装すべきか?
JPAのエンティティクラスに、equals
メソッドやhashCode
メソッドは明示的に実装する必要がありますか?
またその場合、主キーのみに基いて比較判定する処理であれば良いですか?
それとも、@Id
アノテーションがついているだけで良いですか?
(JPAの内部で@Id
付きフィールドを探して比較してくれる?)
@Embeddable
を付けた複合主キークラスは、equals
とhashCode
を実装しなければならない、ということは、以下サイトで知りましたが・・・
http://enterprisegeeks.hatenablog.com/entry/2015/04/27/134840
関連しそうな情報を見つけましたが、英語が苦手なせいか、よく分かりませんでした:
https://stackoverflow.com/questions/4388360/should-i-write-equals-methods-in-jpa-entities
https://developer.jboss.org/wiki/EqualsandHashCode