检票:如何实现一个IDataProvider / LoadableDetachableModel的索引列表
题
什么是实现一个IDataProvider
和检票的索引列表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嵌入式/ CollectionOfElements),但只能通过其在customer.adresses列表索引来识别?如何保持参照拥有实体和索引?
其实,我知道解决办法,但我不知道是否有一个共同的模式来做到这一点。
解决方案
什么是你提出的解决方案?你的问题似乎并不十分清晰。是地址用Hibernate的延迟加载的?我实在看不出你的问题是与上面的代码是什么。如果你的地址,得到由Hibernate的c.getAdresses()加载在迭代器();打电话,那么你有地址,有什么问题呢?是customer.adresses实际地址对象的列表,或者只是ID的? 您可以随时记录您的AdressLoadableDetachableModel即内拥有实体,它的指数 AdressLoadableDetachableModel(a.getId(),(客户)Component.this.getModel()) 你能帮助澄清?
不隶属于 StackOverflow