小编典典

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

hibernate

设置以下映射

@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:它 就像 运算符NOT = (等于运算符)

然后我用

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

但是不起作用,因为Hibernate抱怨在调用User.id的getter时发生了IllegalArgumentException

即使我使用

query.setString("userId", userId + "%");

这没用

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


阅读 223

收藏
2020-06-20

共1个答案

小编典典

根据Hibernate参考:

str()用于将数字或时间值转换为可读的字符串

所以当我使用

from User u where str(u.id) like :userId

工作正常

2020-06-20