在 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.adresses 列表中的索引来识别时,我将如何实现这一点?如何保持对拥有实体和索引的引用?
事实上,我知道一个解决方案,但我想知道是否有一个通用的模式可以做到这一点。