|
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 HQL like 语句的用法
最新推荐文章于 2023-05-22 09:21:59 发布
本文介绍了解决Hibernate 3.0版本中使用Like子句查询中文字符串出现乱码的问题。通过更改参数传递方式,确保中文字符正确匹配。
320

被折叠的 条评论
为什么被折叠?



