org.apache.commons.beanutils.ConversionException: No value specified


背景

框架底層用BeanUtils.copyProperty工具封裝對象

BeanUtils.copyProperty(obj, fieldName, objval);

之前用String一直沒問題,后來字段多用IDEA的根據表自動生成對象的功能,生成內容如下。

問題

生成的POJO中,數據庫DATE類型對應實體中java.sql.Date類型,DATETIME對應實體中java.sql.Timestamp類型。

只要POJO的字段為 java.sql.Date時間等非內置對象時,如果對象為null則會出現org.apache.commons.beanutils.ConversionException: No value specified異常。

解決方案

1.字段類型改為String

2.注冊轉換器

在調用BeanUtils.copyProperty()前注冊轉換器,注冊后sql.date/sql.Timestamp字段類型即可允許為空。

// 注冊sql.date/sql.Timestamp的轉換器,即允許BeanUtils.copyProperty時的源目標的sql類型的值允許為空
ConvertUtils.register(new org.apache.commons.beanutils.converters.SqlDateConverter(null), java.sql.Date.class);
ConvertUtils.register(new org.apache.commons.beanutils.converters.SqlTimestampConverter(null), java.sql.Timestamp.class);
BeanUtils.copyProperty(obj, fieldName, objval);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM