Hibernate 不断检测
org.hibernate.QueryParameterException: could not locate named parameter [name]
即使它存在。这是我的总部
Query query = sess().createQuery("from UserProfile where firstName LIKE '%:name%'").setParameter("name", name);
为什么hibernate总是抛出这个异常?即使参数存在?
最佳答案
应该是这样的:
Query query = sess().createQuery("from UserProfile where firstName LIKE :name")
.setParameter("name", "%"+name+"%");
在您的情况下, ':name'
是 Hibernate 将搜索的实际字符串。如果你需要一个真正的命名参数,你只需要:name
。
因此 %
应该作为 :name
的值传递,Hibernate 将用实际值替换 :name
。
注意,如果你的值包含 %
并且你希望它是一个实际的字母而不是通配符,你必须将它转义,here is一个逃逸类的例子。
关于java - 即使存在,Hibernate 也无法找到命名参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14501094/