是否可以执行以下操作:
@NamedQuery(name=Report.RECORD_BY_TYPE_AND_FIELD_VALUE,query="SELECT r FROM Report r WHERE r.:field <=:value")
我需要能够根据动态列名称进行查询。
最佳答案
我认为不可能执行上述操作,但是 Eclipse 在其自动生成的 DAO 中生成以下类型的方法
public List<Table> findByProperty(String propertyName, final Object value) {
EntityManagerHelper.log("finding TableName instance with property: "
+ propertyName + ", value: " + value, Level.INFO, null);
try {
final String queryString = "select model from TableName model where model."
+ propertyName + "= :propertyValue";
Query query = getEntityManager().createQuery(queryString);
query.setParameter("propertyValue", value);
return query.getResultList();
} catch (RuntimeException re) {
EntityManagerHelper.log("find by property name failed",
Level.SEVERE, re);
throw re;
}
}
关于java - Hibernate/JPA - 变量字段名称是@NamedQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20483926/