我正在尝试使用Hibernate 5.0.7.Final的JPA2类型安全条件查询.
...
criteria.where( builder.equal( root.get(SingularAttribute.attr), value ));
//where parameters are
//criteria.where( builder.equal( root.get(Person_.name), "Can" ));
...
Run Code Online (Sandbox Code Playgroud)
root.get总是抛出NullPointerException
.元模型类Person_
用于Person
通过产生org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor
.
在JPA/Hibernate Static Metamodel Attributes not Populated中提出了类似的问题- NullPointerException,但这次两个类都在同一个包中.
堆栈跟踪:
java.lang.NullPointerException
at org.hibernate.jpa.criteria.path.AbstractPathImpl.get(AbstractPathImpl.java:123)
Run Code Online (Sandbox Code Playgroud)
我的代码:
我用来确保它们具有的接口getId();
.
package it.unibz.db.hibernate.model;
public interface ModelInterface<PK extends Serializable> extends Serializable {
PK getId();
}
Run Code Online (Sandbox Code Playgroud)
模型类
package it.unibz.db.hibernate.model;
@Entity
@Table(name ="person")
public class Person implements ModelInterface<Integer> {
@Id
private Integer id;
private String name;
public Integer getId() …
Run Code Online (Sandbox Code Playgroud)