具有命名查询的JPA Criteria API

时间:2015-05-01 17:47:43

标签: java hibernate jpa criteria-api named-query

标题说明了一遍:是否可以在使用JPA条件API构建的查询中使用命名查询? (简单示例):

@Entity
@NamedQuery(name = "complexFooQuery", query = "FROM Foo where ....")
class Foo {
    ////....
}

List<Foo> getFoo() {
    CriteriaQuery<Foo> cq = em.createQuery(Foo.class);
    cq.select(<somehow specify complex foo named query>);
    return em.createQuery(cq).getResultList();
}

1 个答案:

答案 0 :(得分:1)

没有。 Criteria查询是动态构造的(所以给出类型安全处理)......如果只是转储一些命名查询,那么就没有类型安全处理。此外,对于严格的JPQL,子查询在SELECT子句中是非法的(并且JPQL查询以“SELECT {alias}”开头也是FWIW)