Вероятно, самый простой способ добиться этого, снова вызовет .select2(…)
в элементе после изменения отключенного атрибута.
Так как select2 заменяет исходное поле выбора с пользовательскими элементами HTML (и скрывает оригинал) и, по-видимому, «не смотрит» параметры этого исходного элемента выбора для изменений в их отключенное состояние после вызова, вы должны вызвать его еще раз после изменения состояния, чтобы он считывал текущие значения атрибутов из параметров исходного элемента.
Элемент length
аннотации Column применяется только в том случае, если используется столбец со строковым значением . В вашем случае вы должны использовать элементы precision
и scale
.
@Column(precision=10, scale=2)
Вот что о них пишет спецификация:
int
-precision
- (Необязательно) Точность для десятичного (точного числового) столбца. (Применяется только при использовании десятичного столбца.)int
-scale
- (Необязательно) Масштаб для десятичного (точного числового) столбца. (Применяется, только если используется десятичный столбец.)
@Column(name="Price", columnDefinition="Decimal(10,2) default '100.00'")
Вы также можете использовать @Digits
из API-интерфейса валидатора гибернации, который реализует стандарт проверки bean-компонентов javax.validation
@Digits(integer = 10 /*precision*/, fraction = 2 /*scale*/)
Из Javadocs
Аннотированный элемент должен быть число в допустимом диапазоне. Поддерживаемые типы:
- BigDecimal
- BigInteger
- CharSequence
- BigInteger
- байт, короткий, int, long и их соответствующие типы упаковщиков
нулевые элементы считаются действительными
Используйте @Type (только в Hibernate):
@Column(precision = 5, scale = 4)
@Type(type = "big_decimal")
private double similarity;
Результатом будет определение (PostgreSQL, Oracle):
similarity numeric(5, 4),
similarity number(5, 4)