我有一個數字數據庫字段(SQL Server 2000中的數字(3)),它允許空值,而null是我首選的「無值」值。如何在使用BeanUtils.copyProperties時爲數值保留空值?
該字段映射到非原始Java Long
類休眠:
<property column="my_column" name="my_column" type="java.lang.Long" not-null="false" />
該字段設置爲我的兩個支柱形式和豆java.lang.Long
。當Struts窗體首次創建時,我已驗證該屬性返回null。在創建bean(從數據庫中提取)時,我已驗證該屬性返回null。但是,在使用BeanUtils.copyProperties()
預填充了Bean值的Struts表單後,該屬性將返回0,如果我繼續並保存表單,則數據庫將具有0值。
我是否使用錯誤的類型或類型組合(在數據庫和/或Hibernate/Java中)爲數字字段保留空值?我應該將數字sql類型映射到不同的Java類,如BigDecimal
?在研究中,我發現提到了一個Converter
類。我是否需要創建這樣的類以幫助BeanUtils
正確地維護空值?
謝謝。我添加了`ConvertUtils.register(new LongConverter(null),Long.class);`就在複製屬性調用之前修復它。但是,這是註冊Long轉換器的最佳位置嗎?根據我所讀到的,轉換器註冊是全球性的,所以應該在其他地方註冊,如果是,在哪裏註冊? – Nicole 2009-06-17 20:50:13