私はたくさんの財産を持っている豆を持っていて、それらの半分はn対nの関係にあります。また、一時的な' isEdited 'ブール値を追加して、ユーザーがいくつかの変更を行ったことを確認し、すべてのエンティティのdbフェッチを減らすことができるようにしました。私の現在の問題は、Beanをシリアル化する必要があり、プロパティを実際のインスタンスと比較したい場合があります。私が試した最初の解決策は、apache commons-lang =>EqualsBuilder.reflectEqual();
メソッドからのものです。これは、継承されたアイテムの一部がequalsメソッドを正しく実装しておらず、編集できないため、うまく機能しません。編集されたプロパティを更新するためにajaxリスナーを追加したり、各setterメソッドまたは新しいequals実装を更新したりできることはわかっています。しかし、私はもう少し実用的で一般的な方法を探しているので、将来的にもこの実装を使用できます。
だから私が欲しいもの:(私は単純な豆を持っているとしましょう):
public class Foo {
private String prop1;
private String prop2;
/**
* @return the prop1
*/
public String getProp1() {
return prop1;
}
/**
* @param prop1 the prop1 to set
*/
public void setProp1(String prop1) {
this.prop1 = prop1;
}
/**
* @return the prop2
*/
public String getProp2() {
return prop2;
}
/**
* @param prop2 the prop2 to set
*/
public void setProp2(String prop2) {
this.prop2 = prop2;
}
}
私のBeanよりもEventListener
インターフェースを実装し、このリスナーがすべてのセッターを処理します。(初期化後に)呼び出されたセッターメソッドの場合、編集されたプロパティはtrueに設定されます。
だから私の質問は、セッターを処理するためにアクション/イベントリスナーを追加する適切な方法は何でしょうか?
編集** PropertyChangeListenerを試しましたが、イベント出力がありません。そして、各セッターpcs.firePropertyChange();
メソッドを追加した場合、それらのメソッドを介してisEditedを真に設定できることは意味がありません。