2011-01-08 4 views
2

집계 쿼리의 결과를 최대 절전 모드 도메인 개체의 필드에 매핑 할 수 있습니까?집계 쿼리 결과가 최대 절전 모드 개체에 매핑

예를 들어

: 나는 다음과 같은 Car 객체가있는 경우 - 내 지속성 저장소에있는 모든 자동차의 총 개수로

@Entity 
public class Car { 
    @Id 
    private int id; 
    @Column 
    private String carName; 
    private int carCount; 
    ---Getters/Setters--- 
} 

나는 carCount 필드를 싶습니다/속성을,이다 이게 가능해? 내가 최대 절전 모드 문서를 검토 한

, 나는 쿼리를 실행할 수 있지만 나는 "carCount"

덕분에 그 값을 설정할 수 I는 표시되지 않습니다.

+1

의견 : carCount는 특정 인스턴스에 대한 속성이 아니 * 아닌 속성입니다. 그것은 Car 클래스와 관련된 속성입니다. 따라서 "정적"속성 인 것이 더 적합합니다. ActiveRecord 패턴을 사용하는 경우는 매우 간단 합니다만, "dumb"DTO와 함께 DAO 패턴을 사용하고 있다면이 carCount를 DTO 외부에두고 DAO에서 "int getCarCount) ". – jpkrohling

+0

예, DAO 패턴을 사용하고 있습니다. 나는 DAO에 두 번의 전화를하는 것을 피하려고했지만, 나는 그것을해야만 할 것 같다. 물론, Hibernate가 제공 한 @Formula 어노테이션을 사용하고 싶지 않다면; 하지만 난 정말 최대 절전 모드에 묶여있어. –

답변

6

수식으로 만들 수 있습니다. 뭔가 같은

@Entity 
public class Car { 
    @Id 
    private int id; 
    @Column 
    private String carName; 

    @Formula("select count(*) from Car c where c.id = id") 
    private int carCount; 
} 

는 또한 몇 가지 예제가 있습니다 here.