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/