Тип Oracle Char и Hibernate - PullRequest
       8

Тип Oracle Char и Hibernate

14 голосов
/ 20 августа 2010

У меня есть таблица оракула, которая содержит тип char (n) для нескольких столбцов.Я использую инструменты гибернации для создания объектов сущностей, и этот тип отображения карты инструмента в String.

Но при развертывании приложения я получаю сообщение об ошибке, поскольку Hibernate ожидает тип varchar2, а не тип символа:

Wrong column type in ARBOR.CMF for column CHG_WHO. Found: char, expected: varchar2(30 char)

Какой тип Java следует использовать для отображения типа char (n) в сущности?

Спасибо.

Ответы [ 2 ]

22 голосов
/ 20 августа 2010

Здесь есть некоторая полезная информация в этой записи блога.

По сути, вам нужно сделать свою конфигурацию гибернации более конкретной, так как она предполагает сопоставление строк по умолчанию с varchar2 (30).

Вы можете попробовать использовать независимую от базы данных аннотацию @Column (length = N) (где N - фактическая длина вашего столбца в базе данных). Если это не сработает, попробуйте использовать подход @Column (columnDefinition = "char").

7 голосов
/ 23 февраля 2017

Не работает - не проходит проверку схемы Hibernate:

@Column(name="ENABLED_FLAG", length=1)
private String enabledFlag;

Работает, поскольку атрибут columnDefinition указывает Hibernate не использовать по умолчанию VARCHAR2 в качестве типа столбца и использовать CHAR вместо:

@Column(name="ENABLED_FLAG", length=1, columnDefinition="CHAR")
private String enabledFlag;

Столбец в базе данных определен как:

ENABLED_FLAG CHAR(1 BYTE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...