изменить стандартную стратегию отображения гибернации для перечислений - PullRequest
3 голосов
/ 19 января 2011

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

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

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

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

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

1 Ответ

2 голосов
/ 19 января 2011

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

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

...