设置以下映射
@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 + "%");
这没用
我应该使用什么来传递查询?
根据Hibernate参考:
str()用于将数字或时间值转换为可读的字符串
所以当我使用
from User u where str(u.id) like :userId
工作正常