今也碰到了这个问题 最后我是这样解决的
为max字段加别名e:
SELECT max (emp_id) e FROM recruit_info
hibernate为max字段加类型:
getHibernateTemplate().getSessionFactory().getCurrentSession().createSQLQuery(sql).addScalar("e", Hibernate.LONG);
同事分析,在用到mysql的max、count等函数时,hibernate执行原生sql时没办法识别被函数处理的字段的类型,必须手动指定类型;我的看法是被函数处理的字段类型不是int型
另外这个问题最诡异的就是本地代码连远程server数据库没问题,只要把代码发布到server上就会出现
这点无法解释
本文介绍了解决Hibernate在使用MySQL的max函数时遇到的兼容性问题的方法。通过为max函数处理后的字段添加别名并指定类型,可以避免Hibernate在执行原生SQL时无法识别字段类型的错误。
276

被折叠的 条评论
为什么被折叠?



