读书人

hibernate查询时传接的参数有中文

发布时间: 2012-07-16 15:44:59 作者: rapoo

hibernate查询时传递的参数有中文

看这样一个查询:

Hibernate: select computer0_.ID as ID0_, computer0_.name as name0_ from yang.t_computer computer0_ where computer0_.name=杨

?这是由于我们拼字符串产生的错误,通过查看hibernate的语句(computer0_.name=杨),我们或许发现了错误的原因。

下面是解决方法:

?方法一:

???? 将sql语句改为:String hql="from Computer c where c.name='"+name+"'";

??? (不推荐使用这种方法,在某些情况下有可能会出现错误!)

方法二:

使用hibernate的绑定参数的方式进行查询:

String hql="from Computer c where c.name=:name";
???Query q=s.createQuery(hql);
???q.setString("name", name);

当然可能还有其他解决方案,暂列出常用的两种,仅供参考。

读书人网 >软件架构设计

热点推荐