检票:如何实现一个IDataProvider / LoadableDetachableModel的索引列表

StackOverflow https://stackoverflow.com/questions/368033

  •  21-08-2019
  •  | 
  •  

什么是实现一个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()) 你能帮助澄清?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top