我有一个类Term.java,它映射到mysql中的一个表。我想在查询中使用metamodel语句,如下所示,但它抱怨" Term _"不是可用的变量。
public List<Term> findAllOrderedByName() {
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Term> criteria = cb.createQuery(Term.class);
Root<Term> term = criteria.from(Term.class);
criteria.select(term).orderBy(cb.asc(term.get(Term_.name)));
return em.createQuery(criteria).getResultList();
}
我在POM中有这种依赖:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-jpamodelgen</artifactId>
<scope>provided</scope>
</dependency>
容器是JBoss。这里的问题是什么?谢谢。
编辑:
在Eclipse中,单击&#34; project-&gt; JPA-&gt;规范元模型(JPA2.0)&#34;并指定源文件夹,我得到了在Eclipse中自动生成的类。这是正确的方法吗?
@Generated(value="Dali", date="2016-02-29T14:56:11.460-0800")
@StaticMetamodel(Term.class)
public class Term_ {
public static volatile SingularAttribute<Term, Integer> id;
public static volatile SingularAttribute<Term, String> name;
public static volatile ListAttribute<Term, Context> contexts;
}