Как сообщить JPA предпочтительный тип данных - PullRequest
15 голосов
/ 03 ноября 2010

Если я использую JPA (EclipseLink) для создания таблиц, тип String приводит к varchar2 (255). Как я могу сказать JPA (через аннотацию) создать атрибут varchar2 (20).

Если у меня есть список, JPA создает BLOB (4000), но мне нужен varchar2 (строка моего сериализованного объекта короткая)

Как это возможно? Нужно ли делать это вручную?

Ответы [ 4 ]

28 голосов
/ 03 ноября 2010

Вам необходимо использовать свойство columnDefinition аннотации @Column.т.е.

@Column(columnDefinition="varchar2(20)")
18 голосов
/ 03 ноября 2010

Если я использую JPA (EclipseLink) для создания таблиц, тип String приводит к varchar2 (255). Как я могу сказать JPA (через аннотацию) создать атрибут varchar2 (20).

Использование columnDefinition может нарушить переносимость из одной базы данных в другую. Для столбца со строковым значением предпочтительнее использовать элемент length (по умолчанию 255):

@Column(length=20)
String someString;
5 голосов
/ 03 ноября 2010

Вы можете установить length для вашей аннотации @Column следующим образом:

@Column(length = 20)

Обратите внимание, что длина указана только для текстовых столбцов.Для числовых вы можете использовать precision и scale.

3 голосов
/ 03 ноября 2010
@Column(name = "doc_number", columnDefinition = "varchar2(20)")

Пожалуйста, попробуйте это.

...