リストコンパレーターについて質問があります。テーブルのあるページを持つ Web アプリケーションがあります。このテーブルのデータを編集したり、行を削除したりできます。データを編集すると標準コンパレータが正しく動作しますが、行を削除すると問題が発生します。問題は一般的です(私は思う)たとえば、1行を削除すると、javasが古いリストと現在のリストを比較すると、次のようになります。どのオブジェクトが削除されたかを知っていて、古いリストの最初のオブジェクトと新しいリストの 2 番目のオブジェクトを比較すると、オブジェクト全体が変更されましたが、それは正しくありません。
私の考えは、独自のリストコンパレーターを作成し、このコンパレーターで javas 比較メソッドが照合される前に、比較するオブジェクトが同じ ID を持っているかどうかを確認することでした。残念ながら、オブジェクト ID の取得に問題があります。私のコンパレータは次のようになります
public class ListComperator implements CustomPropertyComparator {
public ValueChange compare(List list1, List list2, GlobalId globalId, Property property) {
for (Object o1 : list1) {
for (Object o2 : list2) {
if(o1.getId().equals(o2.getId()) ) {
javers.compare(o1, o2);
}
}
}}}
2番目のリスト「list2」には、IDなどのプロパティを取得できるオブジェクトがあります。最初のリスト「list1」は、いくつかの ValueObjectId を持つリストであり、オブジェクト o1 から ID を持つプロパティを取得する方法がわかりません。この情報を取得する方法はありますか、それとも完全に間違ったことをしているのかもしれません。助けてください。