У меня есть числовое поле базы данных (numeric (3) в SQL Server 2000), в котором допускаются значения NULL, а NULL - это мое предпочтительное значение «без значения».
Это поле сопоставлено с не примитивным классом java Long
в Hibernate:
<property column="my_column" name="my_column" type="java.lang.Long" not-null="false" />
Поле установлено как java.lang.Long
как в форме моей стойки, так и в бобе. Когда форма Struts создается впервые, я убедился, что свойство возвращает ноль. Когда бин создан (извлечен из базы данных), я убедился, что свойство возвращает ноль. Однако после использования BeanUtils.copyProperties()
для предварительного заполнения формы Struts значениями bean-компонента свойство возвращает 0, и если я продолжу и сохраню форму, база данных будет иметь значение 0.
Использую ли я неправильные типы или комбинации типов (в базе данных и / или в Hibernate / Java), чтобы поддерживать нулевое значение для числового поля? Должен ли я сопоставить числовой тип SQL с другим классом Java, таким как BigDecimal
? В исследовании я нашел упоминание о классе Converter
. Нужно ли создавать такой класс, чтобы BeanUtils
правильно поддерживал нулевые значения?