如何在 Hibernate 中将
LIKE
与 %
一起使用。我想在我的 LIKE
文件中使用 %
和 hbm.xml
来使用 SQL。我有 2 个查询,我正在将其合并为 1 个。
查询如下所示:
select * from PAY_GROUP_VW where CASE_SID=? AND CASE_TLE like %?%
我尝试了
%?%
,但使用%
不起作用。我使用了没有 LIKE
的 %
子句,并且它有效。
这就是我传递参数的方式:
q.setParameter(0, csId);
q.setParameter(1, csTle);
return q.list();
像
%||?
一样尝试并得到以下异常:
org.springframework.dao.InvalidDataAccessResourceUsageException:无法执行查询;嵌套异常是 org.hibernate.exception.SQLGrammarException:无法执行查询 在org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:630) 在 org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412) 在 org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:424) 在org.springframework.orm.hibernate3.HibernateTemplate.executeFind(HibernateTemplate.java:343)
使用
LIKE '%?%'
和第二个参数字符串进行查询。该字段也应该是字符串类型,因为 like
用于比较字符串。
也许 user_id 不是 char/varchar?你必须先用str()将user_id转换为字符数据!
示例:
SELECT *
FROM abc.def_vw a
WHERE user_id = ?
AND str(user_id) LIKE '%' || ?
需要注意的3件事: