インデックス付きリストの Wicket でanIDataProvider
と aを実装する最良の方法は何ですか? LoadableDetachable
アドレスのリストを持っている顧客がいるとします。
class Customer {
List<Adress> adresses;
}
ここで、顧客の住所のデータ プロバイダー/ldm を実装したいと考えています。通常の方法は、IDataProvider
次のように、コンポーネントの顧客モデルを参照する内部クラスとしてです。
class AdressDataProvider implements IDataProvider {
public Iterator iterator() {
Customer c = (Customer)Component.this.getModel(); // somehow get the customer model
return c.getAdresses().iterator();
}
public IModel model(Object o) {
Adress a = (Adress) o;
// Return an LDM which loads the adress by id.
return new AdressLoadableDetachableModel(a.getId());
}
}
質問: アドレスに ID がなく (Hibernate Embeddable/CollectionOfElements など)、customer.addresses リストのインデックスでしか識別できない場合、これをどのように実装しますか? 所有エンティティとインデックスへの参照を保持するにはどうすればよいですか?
実際、解決策は知っていますが、これを行うための一般的なパターンがあるのだろうか。