Будьте в спящем режиме JPA, MySQL и TinyInt (1) для булевской переменной вместо бита или символа

Вот мой JPA2 / В спящем режиме определение:

Code:
@Column(nullable = false)
private boolean enabled;

В MySql этот столбец разрешен к немного (1) тип данных - который не работает на меня. Для проблем прежней версии я должен отобразить булевскую переменную на tinyint не к немного. Но я не вижу возможности изменить тип данных по умолчанию. Есть ли кто-либо?

46
задан Ta Sas 1 August 2010 в 18:12
поделиться

1 ответ

Попробуйте NumericBooleanType . По какой-то причине у него нет объявленного короткого имени типа, поэтому вам придется использовать:

@Column(nullable = false)
@Type(type = "org.hibernate.type.NumericBooleanType")
private boolean enabled;

Это соответствует типу INTEGER, но, вероятно, он будет нормально работать с TINYINT.

ОБНОВЛЕНИЕ: org.hibernate.type.NumericBooleanType Разве не работает с TINYINT в некоторых СУБД. Измените тип столбца базы данных на INTEGER. Или используйте другое значение Java @Type или columnDefinition, если это необходимо.

В этом примере ответ чувака @Column (nullable = false, columnDefinition = "TINYINT (1)") будет работать без каких-либо изменений в базе данных.

38
ответ дан 26 November 2019 в 20:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: