JPA Entity には Lombok の @Data(@EqualsAndHashCode) を使用すべきでない
問題になりそうなキーワード:
-
lazy loading
-
collection
-
循環参照
-
mutability
@Data
(@EqualsAndHashCode
) を付与すると hashCode()
は自動で算出されるようになりますが、JPA @Entity
では上記のような理由で、ハッシュ値が計算できなかったり要件を満たせなくなったりします。
次のリンク先により詳しく解説が有ります:
equals()
や hashCode()
は、大抵の場合デフォルト状態で上手くいきます。考慮無くオーバライドしてしまうと逆に問題を発生させてしまう可能性もある、ということです。
-
JPAのエンティティにはequalsとhashCodeを実装すべきか? - スタック・オーバーフロー