mysql decimal hibernate_mysq 的decimal类型与hibernate 的 setResultTransformer

7e27ba041a6150291fdc8f5296b5f737.png

mysql数据库里是decimal类型的话(powerdesigner是numeric(12,2))

java实体类用工具自动生成,相应类型为double,这个在用hqlQuery查询实体的时候,或者在用sqlQuery.addEntity(select * from方式,必须是查询hibernate实体类)方法时候没什么问题,可以顺利生成实体类。

但是,如果用,setResultTransformer时候,这个时候是生成VO非hibernate实体类,相当于自己组装类,这个时候,在setContractAmt时候,会报什么setter不了,expectedtype=dobule,应该是查出来的类型不能转型为dobule,这个时候需要把字段类型改为BigDecimal即可。

//private double contractAmt;

private BigDecimal contractAmt;

---还有,addEntity方法只适合于SQLQuery,这个时候sql也是select * 这种方式,并且必须是hibernate实体类,这个时候会自动将column到property转换。而setResultTransformer相当于组装任意VO,必须写别名(用as的方式,看另我的一篇博客),可以是sql或者hql,组装成一个VO。

玛德,hibernate这些类型转换问题太烦!!严重影响业务开发

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值