Criteria를 사용하여 쿼리를 만들려고 시도하지만 조인 된 엔터티의 데이터를 매핑하지 못합니다.Hibernate Criteria : 조인 된 엔티티를 사용한 프로젝션
final Criteria criteria = session.createCriteria(Order.class, "o")
.createAlias("o.shippingCondition", "sc", JoinType.INNER_JOIN)
.setProjection(Projections.projectionList()
.add(Projections.property("o.id"), "id")
.add(Projections.property("o.orderNum"), "orderNum")
.add(Projections.property("o.notes"), "notes")
.add(Projections.property("sc.id"), "id"))
.add(Restrictions.eq("o.id", id))
.setResultTransformer(Transformers.aliasToBean(Order.class));
return (Order) criteria.uniqueResult();
내 기관 : 나는 .add(Projections.property("sc.id"), "shippingCondition.id")
하지만 의해 .add(Projections.property("sc.id"), "id")
을 대체하기 위해 tryed했다
@Table(name = "order", schema = "myschema")
public class Order {
private Integer id;
private String orderNum;
private String notes;
private ShippingCondition shippingCondition;
...
}
@Table(name = "shipping_condition", schema = "myschema")
public class ShippingCondition {
private Integer id;
private String shippingCondition;
private Integer sorting;
...
}
이 기준에
는 ShippingCondition 엔티티의 ID로 오버라이드 (override) 된 주문 엔티티의 ID를 조회 ClassCastException이 발생합니다.(java.lang.ClassCastException: entity.Order cannot be cast to java.util.Map)
어떻게 할 수 있습니까?
감사합니다.
잘 작동하지만 최대 절전 모드에서는이 솔루션을 제안하지 않는 것이 이상합니다. 이유가 있니? – Nan
@Nan 잘 작동하는 'OrderDto'는 무엇입니까? –
특수 중첩 변압기가 잘 작동합니다. – Nan