use*_*206 19 java hibernate hql named-parameters
Hibernate保持检测
org.hibernate.QueryParameterException: could not locate named parameter [name]
Run Code Online (Sandbox Code Playgroud)
即使它存在.这是我的hql
Query query = sess().createQuery("from UserProfile where firstName LIKE '%:name%'").setParameter("name", name);
Run Code Online (Sandbox Code Playgroud)
为什么hibernate不断抛出异常?即使参数存在?
Sta*_*sev 26
应该是这样的:
Query query = sess().createQuery("from UserProfile where firstName LIKE :name")
.setParameter("name", "%"+name+"%");
Run Code Online (Sandbox Code Playgroud)
在你的情况下':name'是Hibernate将搜索的实际字符串.如果你需要一个真正的命名参数,你需要有:name.
因此%应该作为值传递,:name并且Hibernate将替换:name为实际值.
请注意,如果您的值包含%并且您希望它是实际的字母而不是通配符,则必须将其转义,这是 escaper-class的示例.
尝试使用连接它hql
"from UserProfile where firstName LIKE '%' || :name || '%'"
Run Code Online (Sandbox Code Playgroud)
或使用CONCAT
"from UserProfile where firstName LIKE CONCAT('%', :name ,'%')"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
38879 次 |
| 最近记录: |