Hibernate HQL like 语句的用法

原创 2011年01月18日 14:25:00

String str = "中文字符串";
String hql = "FROM Table AS t WHERE t.field like '%" + str + "%'";

Query query = getSession().createQuery(hql);
query.list();

使用这种形式传入参数str, 会导致控制台输出:
FROM Table AS t WHERE t.field like '% ????%' 
之类的乱码, 从而在数据库找不到匹配记录.

据说这是hibernate3.0 like子句处理中文的一个问题, 3.1已得到修正。3.0版可以通过设置参数解决。改正如下:

String str = "中文字符串";
String hql = "FROM Table AS t WHERE t.field LIKE :param";
Query query = getSession().createQuery(hql);
query.setString("param", "%" + str + "%");
query.list();

一定要注意传进来的字符串变量是否现实乱码,如为乱码则永远查不到。

相关文章推荐

hibernate的like用法(用占位符解决)

http://blog.sina.com.cn/s/blog_4baadb1f01009k5u.html

Hibernate like 使用

String hql = "from User as user where user.name like ";     Query query=querysession.createQuery(hql...
  • jsship
  • jsship
  • 2011年01月17日 20:10
  • 11688

Hibernate HQL like 语句的用法

String str = "中文字符串"; String hql = "FROM Table AS t WHERE t.field like '%" + str + "%'"; Query q...

HQL实现模糊查询两种传参方式

其实各个方法的实质都是一样的,只不过传递参数的方法稍微有点区别  第一种:  public List getUsers(String id){ List list=new ArrayList...

HQL中的Like查询需要注意的地方及详细示例 .

public List getOrgan(String organCode, String organName) {       String hsql;      List list;...

HQL中的Like查询需要注意的地方

public List getOrgan(String organCode, String organName) {     String hsql;     List list;     if...

Hql语句模糊查询‘like’与中文问题

在做搜索日志的关键字中遇到的问题,特此记录下来: 首先遇到的问题是模糊查询时HQL拼写错误; 接下来遇到的问题是request取得的值含有中文的话产生乱码; 最后遇到的问题是模糊查询中中文与数据库时间...

hibernate查询绑定like类型的参数

在使用hql查询时,如果语句中有like,query绑定参数的形式为:q.setParameter("%param%");不需要加单引号,将两个百分号包围起来。 如果是sql查询则需要用两个单引号将...

Hibernate的HQL not like查询

今天想用Hibernate的Restrictions用not like查询,结果发现Restrictions有not和like方法没有notlike方法,ilike表示不区分大小写的模糊查询。我想用R...

Hibernate实现模糊查询的方法

大家都知道使用本地SQL进行模糊查询用关键字 LIKE 对于在Hibernate里怎么实现呢? 一、绑定参数法: Sql代码 Session session=...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hibernate HQL like 语句的用法
举报原因:
原因补充:

(最多只允许输入30个字)