hibernate的addScalar导致的@JsonFormat注解失效

之前使用hibernate的query.unwrap(SQLQuery.class).setResultTransformer(Transformers.aliasToBean(Model.class))

的方式来返回自定义的对象,但是有个问题,那就是返回的类型千奇百怪,bigInteger,bigDecimal之类的各不相同,当使用不同的查询返回相同的对象时就出问题了,我得吐槽一点,hibernate就不能根据返回的对象动态地赋值吗?为图省事,我只好使用addScalar("pic", StandardBasicTypes.STRING)的方式来制定返回值,其实一点儿也不省事,因为一旦加上addScalar,需要将所有返回字段都加上这个,我又得吐槽了,就不能加一个方式,加了addScalar的字段使用制定的类型,不加addScalar的字段就使用默认的类型吗?网上找了半天都没有可以选择的方式。

结果我发现页面显示时间类型的参数出问题了,@JsonFormat不起作用,加上以后都返回时间戳(例如:1527523200000),不加反而返回2018-6-21的固定格式。之前没有联想到addScalar上,找了半天原因,在我看来,都是Date类型,怎么有的就起作用,有的就不起呢?后来发现就是addScalar的原因,我给返回的时间类型都用了addScalar("date", StandardBasicTypes.DATE),结果@Jsonformat就失效了,当我换成.addScalar("date", StandardBasicTypes.TIMESTAMP)后就可以了。看来时间和时间戳类型是不一样的。怪不得之前用mybatis时都是指定时间戳的。之前的认识浅了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值