2011-01-19 3 views
3

При использовании Hibernate стратегия отображения dafault для перечислений ORDINAL. Поскольку я считаю, что стратегия STRING более надежна, я хочу изменить стратегию сопоставления по умолчанию в пользу этого.изменить стратегию сопоставления hibernate по умолчанию для перечислений

В настоящее время я должен использовать следующий на любом перечислении:

@Enumerated(EnumType.STRING) 
@Column(nullable=false) 
private MyEnum myEnum; 

Есть ли способ сказать спящий режим, чтобы всегда использовать стратегию STRING? Мое исследование не придумало какое-то свойство, которое позволяет изменить это поведение.

Или это невозможно, поскольку JPA указывает ORDINAL как значение по умолчанию, и мы должны явно аннотировать его, чтобы он оставался нейтральным O/R-Mapper?

ответ

2

Я согласен с вами в том, что EnumType.STRING более надежный, особенно при рефакторинге исходного кода, поскольку порядок пересылки констант в enum часто делается путем недоразумения (или просто потому, что кто-то сортирует их по алфавиту).

Но вы также правы, что невозможно изменить поведение по умолчанию, поскольку сопоставление ORDINAL определено по умолчанию по дизайну (возможно, поскольку числовой столбец более эффективен, чем столбец с типизированным varchar).

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