简体   繁体   English

类型安全标准查询,JPA 2.0的新功能:路径未知?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM