解决 hibernate createQuerySql 结果映射问题
在hibernate中使用sql语句查询,默认返回的结果是Object
类型,且无法强制转换。
这里需要注意三点
- 查询语句中表必须加上别名
- selec
*
替换为{t.*}
- 手动指定映射类
User.class
// 表名 t_user 别名 t
SQLQuery sqlQuery = userDao.getSession().createSQLQuery("SELECT {t.*} FROM t_user t ");
// 指定结果映射为 User
sqlQuery.addEntity("t", User.class);
sqlQuery.list();
参考: