使用 like 运算符进行 Hibernate HQL 查询

标签 hibernate hql sql-like

seu 下面的映射

@Entity
public class User {

    private Integer id;

    @Id;
    private Integer getId() {
        return this.id;
    }

}

注意 id 是一个整数。现在我需要使用 like 运算符进行此 HQL 查询
Query query = sessionFactory.getCurrentSession().createQuery("from User u where u.id like :userId");

ATT:它是喜欢 运算符非 = (等于运算符)

然后我用
List<User> userList = query.setParameter("userId", userId + "%").list();

但不起作用,因为 Hibernate 提示 IllegalArgumentException 发生调用 User.id 的 getter

即使我使用
query.setString("userId", userId + "%");

这是行不通的

我应该用什么来传递查询?

最佳答案

根据 hibernate 引用:

str() is used for converting numeric or temporal values to a readable string



所以当我使用
from User u where str(u.id) like :userId

它工作正常

关于使用 like 运算符进行 Hibernate HQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1902686/

相关文章:

sql - SELECT FROM Table WHERE 不是部分的确切数字在字符串 SQL 中

java - Spring、Hibernate 和 .xml 错误

java - OneToMany 关系孤儿不会从数据库中删除

java - Hibernate:将两列映射到 HashMap 的键和值

NHibernate HQL 无法定位命名参数 [parameterName] 错误

java - 如何将此语句从 MySQL 转换为 HQL?

hadoop - hive :Concat map

c# - 使用 SQL LIKE 运算符的 LINQ to Entities

mysql - 对 TEXT 数据类型进行 LIKE 搜索

java - Spring GrantedAuthorities 和相关对象的 Hibernate 问题