위생적인 예제로 시작하겠습니다.특정 서브 클래스를 사용하는 행을 찾는 조건 쿼리
내 시스템에는 Car 클래스가 있습니다. Car에는 여러 필드가 있으며, 그 중 GearShift 클래스의 gearShift 인스턴스가 있습니다.
public class Car {
private GearShift gearShift;
// Snip
}
GearShift는 AutomaticShift와 StickShift가 상속하는 추상 클래스입니다. 이것은 Hibernate에서 table-per-subclass로 매핑된다.
이제 자동 기어 교대로 자동차를 사고 싶다고 말하십시오. 나는 Hibernate criteria를 통해 이렇게하는 것을 선호한다. 그래서 나는 아래에 보여지는 것처럼 추가 할 수있는 "ofType"제한을 상상하고있다.
getSession().createCriteria(Car.class)
.add(Restrictions.ofType(AutomaticShift.class)
.list();
어떤 방식 으로든 가능합니까?
매핑 방법을 알려주세요. 판별자를 사용합니까? – Selim
HQL을 사용하는 것이 왜 옵션이 아닌가? Criteria API는 완전한 Hibernate 기능을 노출하지 않는다. –