MYSQL max函数返回的数据hibernate应该映射哪个数据类型?

rabbitbug 2017-03-09 01:28:10
mysql表中一个列status, 数据类型是int
有个SQL, 类似下面
select id, max(status) as newStatus from user group by id;

ResultTransformer rt=org.hibernate.transform.Transformers.aliasToBean(User.class);
session = this.getSession();
Query query = session.createSQLQuery(queryString).setResultTransformer(rt);

那在User类中, 应该在构造函数中给newStatus定义什么类型的呢?
我用了Integer, Long,
都报
org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of com.User.newStatus
...
Caused by: java.lang.IllegalArgumentException: argument type mismatch

下面这SQL也有类似情况
select id, case status when 1 then 1 else 0 end as newStatus2 from user;

这个newStatus2又该在构造函数中定义什么类型数据呢?

谢谢!
...全文
399 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
rabbitbug 2018-01-31
  • 打赏
  • 举报
回复
其实最后我还是用了addScalar
baidu_33864721 2017-03-31
  • 打赏
  • 举报
回复
BigInteger
李德胜1995 2017-03-30
  • 打赏
  • 举报
回复
引用 2 楼 rabbitbug 的回复:
[quote=引用 1 楼 pany1209 的回复:] 映射的问题。。。User里面没有newStatus的setter
这个setter肯定有的啊 其实就是在setter中应该用哪种数据类型的问题 [/quote] 查询的结果就接受了id,和max(status)两个字段,可以写一个类接受,status是什么类型就写什么类型
rabbitbug 2017-03-30
  • 打赏
  • 举报
回复
引用 1 楼 pany1209 的回复:
映射的问题。。。User里面没有newStatus的setter
这个setter肯定有的啊 其实就是在setter中应该用哪种数据类型的问题
李德胜1995 2017-03-09
  • 打赏
  • 举报
回复
映射的问题。。。User里面没有newStatus的setter

67,516

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧