2
'X'클래스가 'X'테이블에 매핑된다 'A'가 'A'테이블에 매핑되고 B 클래스가 'B'테이블에 매핑됩니다.Hibernate criteria 상속 문제를 쿼리하는 API
표 X 구조 (X_ID 일부 다른 열 테이블 구조 (A_ID, X_Id, 다른 열) 표 B 구조 (A_ID, 다른 열) ... 표 B는 또한 갖는다 A_ID
클래스 'B는'클래스 'A'를 확장 우리가 그들 모두에 대해 매핑 파일이 있습니다.
등급 'A'부모 매핑 파일 :
@Entity
@Table(name = 'A')
@Inheritance(stratergy=InheritanceType.Joined)
public abstract class A {
@Id @Clumns(name = "A_Id)
@GeneratedValue
protected Long aId;
-- some more A specific fields
}
등급 'B'매핑 파일 : 나는 최대 절전 모드 기준 API를 사용하여 작성해야 그 아래로
@Entity
@Table(name= 'B')
Public class B extends A{
---- B specific fields
}
지금, 나는 SQL 쿼리가 있습니다.
select * from X
INNER JOIN A
ON X.id = A.id
INNER JOIN B
ON A.id = B.id
where B.name = 'XYZ'
and B.Sex = 'M'
내가 함께 올라와있다 : 따라서 최대 절전 모드 우리가 매핑 파일을 선택하면, A에 B의 직접적인 언급은 없다
Criteria c = session.createCriteria(x.class, "x");
.createAlias("x.a", "a")
.createAlias("a.b", "b")
.add(Restrictions.eq("b.sex", "M"))
.add(Restrictions.eq("b.name", "XYZ"));
그러나 "는 B A와 관련이없는"밖으로 던져 실재.
이 상속 쿼리 crteria에 매핑 할 수있는 방법이 있습니까
감사합니다 ... 매력처럼 작동했습니다. 이전에 알았어 야했는데 ... 지금은 잘 알고 있습니다. – user1502377