使用hibernate进行数据库查询时,如果在外面拼接好了中文sql,比如select * from a where id='多撒好看';这样使用hibernate的session.createQuery(sql)时就会出现乱码。
这时需要换一种方式查询,外部传入的sql语句为select * from a where id = ?;然后在session.createQuery(sql)返回的query中使用query.setString()来查询,结果就没乱码了。
看来hibernate的动态查询对于中文支持的不是很好