解决Can not construct instance of java.util.Date from String value

最近做的项目是用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进对应的实体字段!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章