[jpa:92] Re: Kuina-Dao利用時にエンティティのequals()のオーバーライドは必要でしょうか?
Toshihiro Nakamura
[E-MAIL ADDRESS DELETED]
2008年 1月 11日 (金) 01:26:26 JST
中村(taedium)です。
> Kuina-Dao利用時に、エンティティクラスのequals()メソッドのオーバーライドは必要でしょうか?
Kuina-Daoとは関係なく、JPAとして必須ではありません。
アプリケーションでオーバーライドしたほうが便利であれば定義するという
スタンスでいいと思います。
> 永続性という観点から、equals()はidフィールド(主キー)の一致の判定という形にすべきと、"EJB3.0プログラミング"(青い本)に記載があったのですが、Kuina-Daoのサンプルの方では特に触れられていないようです。
@GeneratedValueなどでidを自動設定している場合は
equals()でidを使うのは適切ではないと思います。
エンティティにidがまだ割り当てられていない状態があるからです。
使うなら自然キー(ビジネスキー)がいいと思います。
Hibernateインアクションの4章でこのあたりの話が詳しく解説されていました。
参考になるかもしれません。
--
Toshihiro Nakamura
jpa メーリングリストの案内