2015-12-18 1 views
0

Я использую @Convert(converter = CoverConverter.class) для преобразования значения атрибута перед его хранением в базе данных и наоборот. Я должен объявить эту аннотацию в каждом месте, где я использую определенный ENUM. Назовем это TestENUM.Есть ли способ объявить @Convert непосредственно на ENUM

Но этот конкретный ENUM используется более чем в 100 местах, и я не уверен, что другие разработчики в моей группе не захотят добавить эту аннотацию, когда они используют этот ENUM.

Так мне было интересно, если есть способ, что я могу аннотацию к ENUM непосредственно таким образом, что там, где она используется, она будет преобразована до того, сохраняется в базе данных, и наоборот, когда извлекается из базы данных через JPA

так например:

@Convert(convert = true) 
public enum TestENUM {} 

ответ

2

Вы должны быть в состоянии создать конвертер и использовать свойство autoApply:

Если элемент autoApply определен как верно, провайдер живучести должен автоматически применять преобразователь для всех отображенных атрибуты заданного целевого типа для всех объектов в блоке инерционности для атрибутов, для которых преобразование переопределено с помощью Convert аннотации (или XML эквивалента) за исключением.

http://docs.oracle.com/javaee/7/api/index.html?javax/persistence/Convert.html

@Converter(autoApply = true) 
public class MyEnumConverter implements Converter{ 

} 
+0

Спасибо так много. –

Смежные вопросы