gpt4 book ai didi

java - 使用 BeanUtils.copyProperties 时如何为数值保持 null?

转载 作者:行者123 更新时间:2023-11-30 07:39:13 27 4
gpt4 key购买 nike

我有一个数字数据库字段(SQL Server 2000 中的 numeric(3))允许空值,而空值是我首选的“无值”值。

该字段映射到非原始 java Long Hibernate 中的类:

<property column="my_column" name="my_column" type="java.lang.Long" not-null="false" />

字段设置为java.lang.Long在我的支柱形式和 bean 中。首次创建 Struts 表单时,我已经验证该属性返回 null。创建 bean 时(从数据库中提取),我已验证该属性返回 null。但是,在使用 BeanUtils.copyProperties() 之后用 bean 值预填充 Struts 表单,该属性然后返回 0,如果我继续并保存表单,数据库将具有 0 值。

我是否使用了错误的类型或类型组合(在数据库和/或 Hibernate/Java 中)来维护数字字段的空值?我是否应该将数字 sql 类型映射到不同的 Java 类,如 BigDecimal ?在研究中,我发现提到了 Converter类(class)。我是否需要创建这样一个类来帮助BeanUtils正确维护空值?

最佳答案

您需要为 BeanUtils 中的默认值注册一个带有 null 的 LongConverter。

ConvertUtils.register(new LongConverter(null), Long.class); 

关于java - 使用 BeanUtils.copyProperties 时如何为数值保持 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1004303/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com