我可以使用JPA 2.0 CriteriaBuilder来获取非实体对象列表吗?

时间:2012-03-04 00:31:11

标签: jpa openjpa nativequery

我向此提出了类似的问题,但我没有提供详细信息,所以我会更详细地再问这个问题。

我有两个看起来像这样的表:

Table1
    A
    B
    C
    PK

Table2
    D
    E
    F
    PK

这两个表有与之关联的JPA实体,如下所示(为简洁起见,我省略了注释):

Entity1
    {
        String a;
        String b;
        String c;
        int PK;
    }
Entity2
    {
        String d;
        String e;
        String f;
        int PK;
    }

我还有一个我正在使用的简单POJO(未映射到任何表),如下所示:

MyPOJO
    {
        String x;
        String y;
        String z;
    }

我目前正在使用JPA的本机SQL功能来返回List类型的结果集,查询看起来像这样:

SELECT A as x, D as y, F as z from Table1, Table2 WHERE Table1.PK = Table2.PK

我的问题是,我可以使用CriteriaBuilder吗?如果是这样,怎么样?我试图远离本机查询。我正在使用OpenJPA,如果这有任何区别。

1 个答案:

答案 0 :(得分:2)

是的,你可以使用纯JPA 2来做到这一点。

尝试以下文章(CriteriaBuilder构造部分)

http://www.objectdb.com/java/jpa/query/jpql/select#SELECT_in_Criteria_Queries_