JPA hashCode() と equals() のジレンマ
JPA エンティティ クラスでの hashCode() メソッドとquals() メソッドの使用は依然として問題となっています。データの整合性とパフォーマンスに影響を与える可能性があるため、議論の多いトピックです。この記事では、利用可能なオプションと、それぞれの長所と短所を検討します。
hashCode() およびquals() 実装のオプション
Object.equals() と Object.hashCode() (デフォルト)
主キーに基づくオーバーライド
ビジネスに基づいたオーバーライドキー
追加の考慮事項
オプションの選択
最適な選択は、特定の状況によって異なります。申請要件。オブジェクトの ID が重要で、変更可能なエンティティが使用されない場合は、オプション 2 (主キーに基づくオーバーライド) が適している可能性があります。デタッチされたエンティティ操作または非主キー ベースの ID の場合は、オプション 3 (ビジネス キーに基づいて上書き) が推奨されます。
推奨アプローチ
記事「禁止」 「Hibernate に ID を盗ませよう」では、データベースに保存する前にオブジェクト ID を割り当てるという代替アプローチが提案されています。これにより、ORM から ID 管理の責任がなくなり、オブジェクト ID の処理が簡素化されます。
以上がJPAエンティティにhashCode()とequals()を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。