Mapper.getObjectList 인터페이스

/** 
 * Populates the list with all entity objects for the 
 * Search Service given any one of the entity objects used. 
 * @param searchServiceId. the search service identifier 
 * @param obj. The entity object from which all other are 
 *   retrieved
 * @return the list of all entity objects for the this search
 *   service given a specified object parameter. 
 */  
List getObjectList(final SearchServiceKey serviceId, 
  final Object obj) throws AppException, 
    InformationalException;

앞에서 설명했듯이 많은 다른 엔티티에서 검색 서비스의 데이터를 수집할 수 있습니다. 이러한 엔티티는 또한 복잡한 외부 키 관계와 관련될 수도 있습니다. (예를 들어, 주소 레코드는 결국 concernRoleID를 통해 링크되는 concernRoleAddressID를 통해 링크된 addressID를 통해 개인 레코드와 관련될 수 있습니다.)

이들 중 하나의 엔티티가 애플리케이션을 통해 업데이트되는 경우에는 더 복잡해집니다. 이 경우, 일반 검색 서버는 방금 영향을 받은 엔티티, 관련된 검색, 각 검색 서비스에 포함된 다른 모든 엔티티와 관련된 방식을 알아낼 수 있어야 합니다.

결국 하나 이상의 검색 서비스 색인에서 하나 이상의 문서를 업데이트해야 하며 이 문서에 대한 정보는 방금 수정한 하나의 엔티티가 아니라 엔티티 범위에서 수집될 수 있습니다. 그러나 검색 서비스에 단 하나의 맵퍼만 주어진 경우 각 맵퍼 구현은 자신의 검색 서비스에 대한 어셈블링 정보에 대해서만 걱정하면 됩니다.

getObjectList 인터페이스 메소드는 이 문제를 다룹니다. 업데이트된 단일 엔티티 레코드가 주어지면 getObjectList는 현재 검색 서비스 색인에서 해당 문서를 업데이트해야 하는 다른 모든 Dtls 레코드를 어셈블합니다. getObjectList 메소드는 검색 서비스와 관련된 모든 엔티티를 이 프로세스의 시작점으로 사용할 수 있는 방식으로 코딩되어야 합니다. getObjectList는 다음에 대해 책임이 있습니다.

mapper.getobjectList () 메소드는 다음 프로세스에서 호출됩니다.

초기 데이터베이스 추출의 경우 getObjectList 인터페이스 메소드는 ReadmultiOperation에서 페치된 모든 항목에 대해 호출됩니다. 일반적으로 이 경우 최상위 레벨 엔티티가 됩니다. (예를 들어, 개인 검색 추출의 경우 readmulti에서 모든 개인 레코드를 읽습니다. 그런 다음 각각에 대해 getObjectList가 호출되어 SearchServiceRow를 빌드하는 데 필요한 모든 다른 정보를 검색합니다.)

이 검색 서비스와 관련되지 않은 입력에 대해 이 메소드가 호출되면 구현은 단순히 빈 목록을 리턴합니다.