String hql = "from Worker worker where worker.name='" + username +"'";
如果username的内容是汉字则hibernate在对上述语句进行方言转换时将汉字转为“???”从而无法查出所要记录,此时需要改用hibernate的动态参数进行绑定:
String hql = "from Worker worker where worker.name=:str";
//使用动态绑定参数
public Object getOne(String hql,String str){
Session session = this.getSession();
Query query=session.createQuery(hql);
query.setString("str", str);
Object ob=query.setMaxResults(1).uniqueResult();
return ob;
}
worker = (Worker) hiber.getOne(hql, username);
这样就可以进行汉字参数的检索了。