[英]Type-safe criteria query, new feature of JPA 2.0: Path unknown?
When starting a new Java EE (maven) web app in jbdevstudio there is already some code included, inclusive a Member model with Registration. 在jbdevstudio中启动新的Java EE(Maven)Web应用程序时,已经包含一些代码,包括带有Registration的Member模型。 In the MemberRepository class there two methods which use criteria queries this way:
在MemberRepository类中,有两种使用条件查询的方法:
public Member findByEmail(String email) {
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Member> criteria = cb.createQuery(Member.class);
Root<Member> member = criteria.from(Member.class);
// Swap criteria statements if you would like to try out type-safe criteria queries, a new
// feature in JPA 2.0
// criteria.select(member).where(cb.equal(member.get(Member_.name), email));
criteria.select(member).where(cb.equal(member.get("email"), email));
return em.createQuery(criteria).getSingleResult();
}
public List<Member> findAllOrderedByName() {
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Member> criteria = cb.createQuery(Member.class);
Root<Member> member = criteria.from(Member.class);
// Swap criteria statements if you would like to try out type-safe criteria queries, a new
// feature in JPA 2.0
// criteria.select(member).orderBy(cb.asc(member.get(Member_.name)));
criteria.select(member).orderBy(cb.asc(member.get("name")));
return em.createQuery(criteria).getResultList();
}
I would like to use (eg try out) the codeline(s) of the suggested type-safe criteria queries, but the compiler has a problem with Member_
. 我想使用(例如尝试)建议的类型安全标准查询的代码行,但是编译器存在
Member_
的问题。 What am I missing here? 我在这里想念什么?
Greetings Martin 问候马丁
To use JPA Static Metamodel classes in Criteria queries you have to first CREATE the static metamodel classes. 要在Criteria查询中使用JPA静态元模型类,您必须首先创建静态元模型类。 All JPA providers include a way of doing it, and their documentation would tell you how that is done.
所有JPA提供程序都提供了一种实现方法,其文档将告诉您如何实现。 The link here shows it for one
这里的链接显示了一个
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.