Hibernateで同じエンティティの遅延ロードされたオブジェクトを比較する最良の方法は何ですか?
//instanceC and instanceD are different objects of different classes
instanceC.getA().equals(instanceD.getA()) // false
instanceC.getA().getId() == insttanceD.getA().getId() // false!
だから私が最後にすることは次のとおりです。
int idA=instanceC.getA().getId();
int idB=instanceD.getA().getId();
a==b // true
もちろん、ひどく曲がっているように見えます。だから私が最終的に決めたのは、メソッドをオーバーライドしequals()
てこの混乱を隠すことです。
より良い(または正しい)解決策はありますか?
注: Stack Overflow question Lazy-loaded NHibernate properties in Equals と GetHashCodeなどを確認しました。回避策を求めているわけではありません。より良い解決策または正確な解決策が存在する場合は、この質問を提示したいと思います。