Использование аннотаций JPA и картыс длиной varchar - PullRequest
3 голосов
/ 16 декабря 2011

У меня есть объект, который содержит следующие атрибуты члена:

@Id
protected String id;

@ElementCollection(targetClass = String.class)
@MapKeyClass(String.class)      
protected Map<String, String> data = new HashMap<String,String>();

Это соответствует двум таблицам, таблице ENTITY и таблице ENTITY_DATA, которая содержит строку для каждого элемента в HashMap.Он отображает значения в HashMap как VARCHAR (256), и мне нужно, чтобы он был VARCHAR (1024).Можно ли это сделать?Я не могу найти ничего в аннотациях ElementCollection или MapKeyClass, которые позволили бы это.

1 Ответ

6 голосов
/ 16 декабря 2011

Потому что, как вы говорите, проблема со значениями, как и со столбцами в целом.Просто добавьте следующую аннотацию в поле.

@Column(columnDefinition = "varchar(1024)")

С JPA 2.0 вы можете сделать то же самое и в поле, где ключ карты сохраняется с MapKeyColumn аннотация:

@MapKeyColumn(columnDefinition = "varchar(1024)")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...