标题说明了一遍:是否可以在使用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();
}
答案 0 :(得分:1)
没有。 Criteria查询是动态构造的(所以给出类型安全处理)......如果只是转储一些命名查询,那么就没有类型安全处理。此外,对于严格的JPQL,子查询在SELECT子句中是非法的(并且JPQL查询以“SELECT {alias}”开头也是FWIW)