7.2.3 다형성 우리는 객체 지향 쿼리 언어로 HQL을 설명 를 조회 7 장에서 다음 섹션을 통해 온, 그래서해야 다형성 쿼리를 지원합니다. 즉, 클래스의 인스턴스 및 해당 서브 클래스의 모든 인스턴스를 각각 쿼리합니다. 당신은 이미 우리가 이것을 증명할 수있는 충분한 HQL을 알고 있습니다.
BillingDetails
이 쿼리는 추상 클래스 타입 BillingDetails의 객체를 반환에서 다음 쿼리를 고려하십시오. 따라서이 경우 구체적인 개체는 BillingDetails의 하위 유형 인 CreditCard 및 BankAccount입니다. 우리는 특정 서브 클래스의 인스턴스를 원하는 경우에, 우리는 크레딧 카드
에서을 사용할 수 있습니다
절에서에 명명 된 클래스는 매핑 영속 클래스 일 필요는 없습니다; 어떤 수업이든 할 것입니다. 다음 쿼리는 모든 영속 객체 반환 java.io.Serializable을
에서: java.lang.Object 상위 물론
에서
을,이 또한 작동 인터페이스 -이 쿼리는 모든 직렬화 영속 객체를 반환
조건 쿼리는 다형성도 지원합니다.
session.createCriteria (BillingDetails.class) .list();
이 쿼리는 BillingDetails 및 해당 하위 클래스의 인스턴스를 반환합니다. 마찬가지로 다음 조건 쿼리는 모든 영구 객체를 반환합니다.
session.createCriteria (java.lang.Object.class) .list();
다형성은 from 절에서 명시 적으로 명명 된 클래스뿐만 아니라 나중에 볼 수 있듯이 다형성 연결에도 적용됩니다.
질문 : 다형성 쿼리의 사용법은 무엇입니까? 언제, 어떻게 사용되는지.
게시 한 내용에서 분명하지 않습니까? 유형이 무엇이든 (신용 카드 또는 은행 계좌) 모든 청구 세부 정보를 원한다면 구체적인 하위 클래스마다 하나의 w-query를 발행 할 필요가 없습니다. BillingDetails를 선택하는 단일 쿼리로 충분합니다. –