论坛首页 Java企业应用论坛

『类型』hibernate3不能查询中文?

浏览 38281 次
该帖已经被评为精华帖
作者 正文
   发表时间:2006-02-16  
如果你想写Hql查询中文,那么中文的参数必须以参数的形式提供给查询;
原因好像是:中文占位的高低为问题产生的。
反正以前遇到过,用参数的方法可以解决
0 请登录后投票
   发表时间:2006-05-06  
真是在谢谢了,我也遇到了这样的问题,我等下试试,但看到大家都解决了,我想肯定没问题,太谢谢了!
0 请登录后投票
   发表时间:2006-05-07  
我按dhj1的方法把hibernate3.0换成了hibernate3.1但问题还是没有解决.
别外我还有个疑问大家都说不要拼SQL或HQL,我知道拼是有安全隐患,但做好字符串关键字检查也可以保证安全啊,我不是想自圆其说,但我现在应用中的确要拼HQL才能完成功能.我简单描述一下:我提交一个查询页面时将要查询条件在action中拼写好,然后将HQL放入session中,然后在页面上显示时取出session中的HQL,最后显示查询结果.假如不用拼接的方法,那我这种应用该改成什么实现方式呢?
0 请登录后投票
   发表时间:2006-06-08  
大家说不能拼接SQL
我在页面上提交查询数据的时候,不能确定查询条件。
那么使用占位符? 就是件很困难的事了。请问大家是怎么去实现这步的。

例如:
if( null!=a && !a.trim().equals("")){
   StringBufferStr.append("  and  ojbect.a  like '%"+a+"%' "
}
这样子的条件有多个。如果有实现的请回答
0 请登录后投票
   发表时间:2006-06-09  
if( null!=a && !a.trim();.equals(""););{ 
StringBufferStr.append(" and ojbect.a like '%:para1%' " 
} 
上边拼占位符,下边根据条件塞值

Query query = session.createQuery(StringBufferStr.toString(););;

if( null!=a && !a.trim();.equals(""););{ 
    query.setParameter("para1", new String(a););;
} 

List yourlst = query.list();;
0 请登录后投票
   发表时间:2006-06-15  
hibernate的 Criteria 不就是干这事情的么?
0 请登录后投票
   发表时间:2006-06-15  
见:http://forum.iteye.com/viewtopic.php?t=14496&highlight=DetachedCriteria
0 请登录后投票
   发表时间:2006-07-25  
String hql = "from MSGBean where CHINESE like '%一%'";

Query q = session.createQuery(hql);

怎么改成用占位符的形式?

用getHibernate().find(...)好像不行啊
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics