如何使用Hibernate在多列中搜索子字符串

时间:2012-10-26 07:36:12

标签: sql hibernate

以下是我的代码,用于调用数据库以查找子串“ello”。

String queryString = "from ContentItem where singerName = '%"+searchString+"%' OR  songName = '%"+searchString+"%'";
System.out.println(queryString);
Query query = session.createQuery(queryString);
return query.list();  

字符串输出是

from ContentItem where singerName = '%ello%' OR songName = '%ello%'

它表示%的意外令牌。如何才能在这些列中搜索子字符串?

我在Tapestry中工作Hibernate。

1 个答案:

答案 0 :(得分:1)

equals(=)运算符不适用于通配符。您需要使用like(或ilike)。

例如

SELECT * FROM table WHERE column like '%abc%';

see this document了解更多信息。