[Seasar-user:11803] [DBFlute]dbflute.bsentity.customizeパッケージのクラスのequalsメソッドの意図

Taro Unno [E-MAIL ADDRESS DELETED]
2007年 11月 26日 (月) 14:44:17 JST


海野です。
いつもお世話になっております。

DBFluteで自動生成したエンティティクラスの
equalsメソッドについて質問です。

外だしSQLからsql2entityで自動生成すると、
    ルートパッケージ.dbflute.bsentity.customize
のEntityクラスに、
    public boolean equals(Object)
というメソッドが作成されると思います。

ここで、例えばあるEntityがaaaというプロパティを持っているとすると、
equalsメソッドで

        if (getAaa() == null || !getAaa().equals(otherEntity.getAaa())) {
            return false;
        }

と判定するようになっていると思います。
このif文の判定式の最初の

    getAaa() == null

という判定の意図を知りたいのです。
質問は、次の2点です。

■質問1.
getAaa() と otherEntity.getAaa() が両方nullである場合
trueと判定しないのはなぜでしょうか。

■質問2.
この場合trueとしたいので、継承先のクラスでequalsメソッド
をオーバーライドしようと思います。
オーバーライドすることについて注意点や懸念事項はありますでしょうか。

環境はDBFlute0.5.4です。

どなたか、どうぞ宜しくお願い致します。


Seasar-user メーリングリストの案内