私は最近、同じJavaクラスの2つのインスタンスを比較する方法について同僚と議論しました。
複雑なオブジェクトの2つのインスタンスがあり、これら2つの間でどの属性が異なるかを知りたいとします。
ユースケースは次のとおりです。多くのフィールドを持つユーザープロファイルがあり、ユーザーが新しいプロファイルを送信した場合、「誕生日、名前、通りの名前を正常に変更しました。」などを表示できるように、どのフィールドが変更されたかを知りたいとします。 。」
したがって、現時点での最善の解決策は、別のオブジェクトを取得するクラスにcompareメソッドを記述し、すべてのフィールドを1つずつ比較してから、異なるフィールドのリストを返すことです。
各属性を手動で指定せずにそれを行うための自動メソッド(たとえば、外部ライブラリから)があるかどうか疑問に思いました。
ところで、hibernateにローカルオブジェクトとデータベースオブジェクトを比較するためにこれを実行できるメソッドがある場合、それはトリックを実行できます。