2012-03-03 47 views
0

假設我想從2個數據庫中進行選擇。 Database1有字段A,B和C. Database2有字段D,E和F.我有一個由字段X,Y和Z組成的POJO。我想編寫一個CriteriaBuilder查詢來選擇所有的B,D和F字段在結果集中,將它們映射到POJO中的字段X,Y和Z,返回我的POJO對象列表。這可能嗎?我可以用本機查詢來做到這一點,但我不想使用本機查詢。有沒有JPA CriteriaBuilder獲取非實體對象的方法?

+0

你有兩個數據庫,還是兩個表? JPA與實體合作。不與表。向我們展示這些實體及其映射。 – 2012-03-03 08:46:05

+0

對不起,我錯過了。它是2個表格...不是2個數據庫。 Entity1映射到Table1幷包含字段A,B和C. Entity2映射到Table2幷包含字段D,E和F.我想從中選擇,但我希望我的結果成爲第三個非實體的列表POJO。我希望我的POJO包含3個字段 - X,Y和Z.我希望這3個字段分別包含來自Entity1.B,Entity2.D和Entity2.F的查詢結果。我希望能夠執行查詢並使用CriteriaBuilder獲取結果列表。 – user1148956 2012-03-03 14:27:10

+0

[我可以使用JPA 2.0 CriteriaBuilder獲取非實體對象列表嗎?](http://stackoverflow.com/questions/9551214/can-i-use-the-jpa-2-0- criteriabuilder到取入一個一覽的-非實體對象) – DataNucleus 2012-03-04 06:26:52

回答

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; 
} 
相關問題