개찰구 : 인덱스 목록의 Idataprovider/LoadabledeTachableModel을 구현하는 방법
문제
구현하는 가장 좋은 방법은 무엇입니까? IDataProvider
그리고 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가 없을 때 (예 : 최대 절전 모드 임베드 가능/CollectionOfelements)이를 구현하려면 어떻게해야합니까? 소유 엔티티와 색인을 어떻게 참조합니까?
사실, 나는 해결책을 알고 있지만, 이것을하는 일반적인 패턴이 있는지 궁금합니다.
해결책
제안 된 솔루션은 무엇입니까? 당신의 질문은 나에게 분명하지 않은 것 같습니다. 주소가 최대 절전 모드에 의해 게으르게로드됩니까? 위의 코드에서 문제가 무엇인지 실제로 알 수 없습니다. 주소가 c.getAdresses (). iterator ()의 Hibernate에 의해로드 된 경우; 전화, 당신은 주소가 있고 문제가 무엇입니까? 고객은 실제로 주소 개체 목록입니까, 아니면 그냥 ID가 있습니까? 항상 소유 엔티티를 녹음 할 수 있으며 AdressLoadeDeTachableModel 내부의 색인을 표시 할 수 있습니다. 즉, AdressLoadeAdeTachableModel (a.getId (), (customer) 구성 요소. this.getModel ())를 명확히 할 수 있습니까?