JPA CriteriaBuilder有没有办法获取非实体对象?

时间:2012-03-03 04:23:28

标签: jpa criteria-api openjpa

假设我想从2个数据库中进行选择。 Database1有字段A,B和C. Database2有字段D,E和F.我有一个由字段X,Y和Z组成的POJO。我想写一个CriteriaBuilder查询来选择所有的B,D和F字段在结果集中,将它们映射到我的POJO中的字段X,Y和Z,返回我的POJO对象列表。这可能吗?我可以使用本机查询执行此操作,但我不想使用本机查询。

1 个答案:

答案 0 :(得分: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;
}