2012-03-03 8 views
0

2つのデータベースからselectを実行したいとします。 Database1にはフィールドA、B、Cがあります。Database2にはフィールドD、E、Fがあります。フィールドX、Y、ZからなるPOJOがあります。B、D、Fフィールドのすべてを選択するCriteriaBuilder POJOの中のフィールドX、Y、Zにマップして、私のPOJOオブジェクトのリストを返します。これは可能ですか?私はネイティブクエリでこれを行うことができますが、ネイティブクエリを使用したくありません。JPA CriteriaBuilderで非エンティティオブジェクトをフェッチする方法はありますか?

+0

2つのデータベースまたは2つのテーブルがありますか? JPAはエンティティと連携します。テーブルではありません。これらのエンティティとそのマッピングを表示します。 –

+0

申し訳ありませんが、私は間違いました。 2つのデータベースではありません。 Entity1はTable1にマップされ、フィールドA、B、Cを含みます。Entity2はTable2にマップされ、フィールドD、E、Fを含みます。これらから選択したいが、私の結果は3番目の非エンティティPOJO。 POJOにはX、Y、Zの3つのフィールドが必要です。これら3つのフィールドにそれぞれEntity1.B、Entity2.D、Entity2.Fのクエリ結果が含まれるようにします。そして、私は、クエリを実行し、この結果リストをCriteriaBuilderで得ることができるようにしたい。 – user1148956

+0

[JPA 2.0 CriteriaBuilderを使用して非エンティティオブジェクトのリストを取得できますか?](http://stackoverflow.com/questions/9551214/can-i-use-the-jpa-2-0-非エンティティオブジェクトのリストをフェッチする基準オブジェクト) – DataNucleus

答えて

2

あなたは他のエンティティで初期化されたエンティティを返すために、以下のクエリを使用して試すことができます:

SELECT NEW com.package.Entity3(e1.b, e2.d, e2.f) FROM Entity e1, Entity e2; 

その後、あなたは必要に応じて使用すると、フィールドの値を設定することができ、クエリと同様のシグネチャを持つコンストラクタを提供する必要があります。

public Entity3(int b, int d, int f){ 
    x = b; 
    y = d; 
    z = f; 
} 
関連する問題