java - Hibernate/JPA - 变量字段名称是@NamedQuery

标签 java hibernate jpa hql

是否可以执行以下操作:

@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/

相关文章:

java - 如何修复 'Horizontal swiping between ViewPager tabs' ?

java - 大型 Maven 项目的存储库布局

Java 字符串文字自动解释为 String 对象,但是如何呢?

java - 嵌套列表不适用的 Java 流上的 Limit()

java - 在 Apache Derby Embedded 上调用 last_insert_id() 时出现 Hibernate 异常

java - 无法使用 Eclipse 和 Tomcat 8.5 构建项目

java - Hibernate延迟加载的理论问题

java - JPA EntityManager - 使用合并生成默认值?

java - Hibernate - where 子句任何集合作为命名参数查询

java - Hibernate:删除父级/所有者,同时保持子级一对一的关系