2013-02-18 4 views
0

많은 하위 클래스의 속성으로 검색 할 기준을 만들기 위해 일부 별칭을 만들려고합니다.하위 클래스 문제를 참조하기 위해 Hibernate에서 별칭 만들기

public abstract class Entity { 

protected int id; 
protected PartyBasicGroup partyBasicGroup; 

} 

public class Person extends Entity { 

} 

public class Organization extends Entity { 

protected PartyBasicGroup signatoryBasicGroup; 
protected String jobTitle; 
} 

나는 다음과 같이 사람과 조직에 대한 몇 가지 별칭을 만들려고하고 있어요 :

criteria = criteria.createAlias("entity.person", "person", JoinType.LEFT_OUTER_JOIN); 
criteria = criteria.createAlias("entity.organization", "organization", JoinType.LEFT_OUTER_JOIN); 

하지만 오류 받고 있어요 :

Couldn't resolve property person for Entity 

어떤 도움을 여기 내 모델입니다 이 문제를 해결하려면? 하위 클래스 속성에 액세스하기 위해 하위 클래스를 참조하는 별칭을 만드는 방법을 알고 싶습니다.

감사합니다.

+2

여기에서 실행하려고하는 최종 쿼리는 무엇입니까? "entity.person"과 "entity.organization"은 의미가 없으므로 Person과 Organization은 속성이 아니라 Entity의 하위 클래스입니다! – overmeulen

+0

특정 jobTitles를 검색하려고하는데 조직의 속성에 액세스하는 별칭을 만드는 방법을 모르겠습니다. 나는 하위 클래스가 있다는 것을 알고 있지만, 다른 코드에서 Hibernate가 그것들을 프로퍼티로 처리 할 수 ​​있음을 보았다. – user2083783

답변

0

여기서 별칭을 사용하려는 이유를 알 수 없습니다. 다음 내용으로 충분합니다.

Criteria criteria = session.createCriteria(Organization.class); 
criteria = criteria.add(Restrictions.eq("jobTitle", "XYZ")); 
List<Organization> organizations = (List<Organization>) criteria.list();