2011-01-08 5 views
2

集約クエリの結果を、ハイバネートベースのドメインオブジェクトのフィールドにマップすることは可能ですか?例えば集約クエリからハイバネートオブジェクトへの結果のマッピング

:私は次のような車のオブジェクトがある場合 -

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

を、私は私の永続ストア内のすべての車の合計数であることをcarCountフィールド/プロパティをしたいと思い、さこれは可能ですか?私はHibernateのドキュメントを見てきた

、私はクエリを実行することができますが、私は「carCount」

おかげにその値を設定することができ、私は表示されません。

+1

コメント:carCountは特定のインスタンスのプロパティではありません。これはCarクラスに関連するプロパティです。したがって、「静的」なプロパティにする方が適しています。 ActiveRecordパターンを使用している場合はかなり簡単ですが、 "ダム" DTOでDAOパターンを使用している場合は、このcarCountをDTOの外に保ち、 "int getCarCount )」。 – jpkrohling

+0

はい、私はDAOパターンを使用しています。私は私のDAOを2回呼び出すことを止めたいと思っていましたが、私はそれをやらなければなりません。もちろん、私は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もあります。

関連する問題