2009-06-07 4 views

답변

9

SQL 투영을 사용할 수도 있습니다.

session.createCriteria(Item.class) 
     .createAlias("item", "i") 
     .setProjection(Projections.projectionList() 
      .add(Projections.groupProperty("i.id")) 
      .add(Projections.groupProperty("i.price")) 
      .add(Projections.groupProperty("i.quantity")) 
      .add(Projections.sqlProjection( 
        "price * quantity as total", 
        new String[] { "total" }, 
        new Type[] { Hibernate.DOUBLE } 
       ) 
      ) 
     ); 

가 오라이

+0

당신이 알려주세요 수있는 곳입니다 총을 생성하는 기능 : 그것은 무언가 같이해야 하는가? 이 경우에만 제품이 생성됩니다. – Victor

1

당신이 요구 한 것이 정확히 아니지만 "파생 된 속성"을 사용하여 다소 비슷한 것을 얻을 수 있습니다.

예를 들어, SQL 표현식에 totalPrice 속성을 매핑 할 수 있습니다 :

<property name="totalPrice" formula="quantity * price" type="big_decimal"/> 

는 SQL 식 "수량 * 가격"엔티티가 데이터베이스에서 검색 될 때마다 평가된다. 오리

최대 절전 모드 docs

이에 대한 자세한 정보가 포함되어 있습니다.

1

기준과 함께 (아마도) 수행 할 수 없습니다. 그러나 HQL이 도움이 될 수 있습니다.

SELECT ent.quantity*ent.price from EntityName as ent WHERE ent.id = ?