最近做的项目是用jeecg进行开发的,所使用的的持久层是hibernate,在提交日期时间格式为yyyy-MM-dd HH:mm:ss时,发生转换异常。
这个问题的主要原因是前台提交的时间类型的string字符串,然后你后台对应的实体字段是个date类型的,Jackson框架反序列化的时间格式里没有yyyy-MM-dd HH:mm:ss,他就会报错:
Can not construct instance of java.util.Date from String value '2020-05-26 14:15:26': not a valid representation (error: Can not parse date "2020-05-26 14:15:26": not compatible with any of standard forms ("yyyy-MM-dd'T'HH:mm:ss.SSSZ", "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", "EEE, dd MMM yyyy HH:mm:ss zzz", "yyyy-MM-dd"))
我在网上百度了很多的解决办法,说什么在实体上加注解的,或者是继承JsonDeserializer重写里面方法的,但是都不能解决我的问题!于是鸡哥给了我一个巧妙的转换思维!
在实体字段里添加一个String类型的字段,来接收前端的时间数据,但是要注意这个添加的字段因为不跟数据库的任何一个字段进行映射,所以你要在这个字段上还有他的settergetter方法上加@Transient注解。
然后在实现类里面,把获取到的时间字符串通过SimpleDateFormat转换成date类型,set进对应的实体字段!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/16450.html