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);
当然可能还有其他解决方案,暂列出常用的两种,仅供参考。