2014-03-28 4 views
0

요구 사항을 처리하고 있습니다. 현재 값이있는 목록 상자 (예제 데이터)가있는 검색 페이지가 있습니다. 1) 직원 및 2) 스포츠 사람.
개체 계층 구조 (최대 절전 모드 콩) 사람) 차별 열
Person_Type (차별 열을 기반으로 두 개의 서로 다른 클래스 1) 직원 및 2) 스포츠 사람이있는 실제 객체입니다.클래스 당 계층 구조 계층 구조

검색 페이지에서 사용자가 목록 상자 중 하나를 선택하면 해당 하위 클래스의 데이터가 생성됩니다.

이제는 하위 클래스 결과를 모두 표시해야하며 목록 상자에 "Employee + Sports Person"이라는 값을 하나 더 추가해야합니다.

문제의 1) 두 하위 클래스 모두 다른 구조를 가지고 있습니다. 2) 다른 속성과 비교되는 다른 기준이 있습니다.

어떻게 두 하위 클래스를 결합 할 수 있습니까? 해결하도록 도와주세요. 참고 사항 : 쿼리 기반 연합을 사용하지 않으려합니다. OOPS의 측면에서 생각하고 있습니다.

+0

나는 당신의 문제를 잘 이해하지 못합니다. 직원 및 스포츠 인을 포함하고 다른 기준에 따라 그 목록을 정렬해야하는 목록이 있습니까? – Thomas

+0

@ 토마스, 나는 UI와 Hibernate Object Hierarchy를 섞 었다고 생각한다. 목록 상자는 두 개의 값이있는 UI 요소입니다. 선택에 따라 DAO는 하위 클래스에서 실행됩니다. 목록 상자의 값은 판별 자 값 인 Person_Type입니다. – Kumar

답변

1

두 가지 유형의 사람 모두를로드하는 것이 문제가되지 않아야합니다. 쿼리가 공통 속성에 액세스 할 수있는 경우 FROM Person p WHERE <whatever_person_criteria_you_have>을 수행 할 수 있습니다.

쿼리가 EmployeeSportsPerson의 특정 속성을 사용해야하는 경우 2 개의 쿼리를 실행하고 결과를 단일 List<Person>에 넣을 수 있습니다.

해당 목록을 정렬/표시하는 것은 표시하거나 비교해야 할 데이터에 따라 다릅니다. 다른 데이터를 비교해야하는 경우에는 항상 객체의 실제 클래스를 확인하는 Comparator<Person>을 사용할 수 있으며 표시를 위해 올바른 속성에 액세스하기 위해 동일한 작업을 수행하는 래퍼 일 수 있습니다.

+0

나는 하위 클래스에 특정한 기준으로 결과를 얻기 위해 두 개의 Quires를 실행했다. 하지만 내 상사가 정말 한 번의 히트로 내게 묻습니다 ... 또는 네이티브 쿼리를 사용합니다 (어느 쪽이 좋을지 모르겠 음) – Kumar

+0

@Kumar 두목의 질문에 두 가지 쿼리를 사용해야합니다. 더 복잡한 하나 이상의 두 개의 간단한 쿼리를 사용하는 것이 더 좋을 것입니다. 특히 네이티브 SQL로 폴백해야 할 경우 (특히 그 점도 좋지는 않습니다;)). 단일 쿼리가 너무 복잡해지면 동일한 결과를 얻기 위해 여러 쿼리를 수행하는 것이 유지 관리가 쉽고 성능이 향상 될 수 있습니다. – Thomas

+0

네가 맞습니다. 방금 그에게 말 했어요.하지만 상사가 항상 옳다는 걸 알 잖아요 .--). 그러나 실제로 귀하의 선택은 정확합니다. – Kumar