解決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進對應的實體字段!

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