如何在 Hibernate 中使用 LIKE %
。我想在我的 hbm.xml
文件中使用带有 LIKE %
的 SQL。我有 2 个查询,我正在合并为 1 个。
查询如下所示:
select * from PAY_GROUP_VW where CASE_SID=? AND CASE_TLE like %?%
我也试过 %?%
。我在没有 %
的情况下使用了 like 子句并且它有效。但是 %
不起作用。
包装异常:
org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute query; nested exception is org.hibernate.exception.SQLGrammarException: could not execute query
at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:630)
at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:424)
at org.springframework.orm.hibernate3.HibernateTemplate.executeFind(HibernateTemplate.java:343)
这是我传递参数的方式:
q.setParameter(0, csId);
q.setParameter(1, csTle);
return q.list();
尝试了 %
|| ?
并得到以下异常:
org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute query; nested exception is org.hibernate.exception.SQLGrammarException: could not execute query
at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:630)
at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:424)
at org.springframework.orm.hibernate3.HibernateTemplate.executeFind(HibernateTemplate.java:343)
最佳答案
使用 LIKE '%?%'
和第二个参数字符串进行查询。该字段也应该是字符串类型,因为 like
用于比较字符串。
关于java - 在 Hibernate 中使用 LIKE %,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15369090/