Как установить columnDefinition глобально с помощью JPA/EclipseLink?

Все атрибуты в моем блоке сохраняемости, которые имеют тип «MyCar», должны быть сопоставлены с одним и тем же типом столбца базы данных «VARCHAR (255)». На данный момент мне нужно установить аннотацию @Column для каждого атрибута следующим образом:

@Column(columnDefinition = "VARCHAR(255)")
private MyCar car1;

@Column(columnDefinition = "VARCHAR(255)")
private MyCar car2;

@Column(columnDefinition = "VARCHAR(255)")
private MyCar car3;
...

Есть ли способ установить columnDefinition для «MyCar» глобально?


person Mathias S    schedule 08.04.2016    source источник
comment
MyCar также является сущностью?   -  person Matteo Baldi    schedule 09.04.2016
comment
Хороший вопрос! Я забыл упомянуть об этом. Нет, MyCar не является юридическим лицом. Это пользовательский класс Java, который преобразуется в строку с помощью класса преобразователя JPA, аннотированного с помощью javax.persistence.Converter: @Converter(autoApply = true). Класс преобразователя реализует AttributeConverter‹MyCar, String›   -  person Mathias S    schedule 09.04.2016
comment
Как вы добавляете конвертер? В EclipseLink также есть настройщики сеанса, которые можно использовать для программного просмотра всех сопоставлений сущностей и установки столбца для любого, использующего тип MyCar. см. stackoverflow.com/questions/ 19896352/ и wiki.eclipse.org/Customizing_the_EclipseLink_Application_(ELUG)   -  person Chris    schedule 11.04.2016