2011-01-19 7 views
3

Hibernateを使用する場合、enumsのdafaultマッピング戦略はORDINALです。 STRING戦略がより堅牢だと思うので、私はそれを優先するようにデフォルトのマッピング戦略を変更したいと思います。enumのデフォルトのhibernateマッピング戦略を変更します

現在、私は、任意の列挙型で、次を使用する必要があります。

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

は常にSTRING戦略を使用して休止状態伝える方法はありますか?私の研究では、この振る舞いを変えることができるいくつかの財産が出てこなかった。

JPAがデフォルトとしてORDINALを指定しており、O/R-Mapperニュートラルを維持するためにJPAに明示的に注釈を付ける必要があるため、不可能ですか?

答えて

2

特に、ソースコードのリファクタリング時には、enumの定数の順序付けが不注意によって(または誰かがアルファベット順にソートするため)ソースコードをリファクタリングするときに、より堅牢であることに同意します。

しかし、ORDINALマッピングが設計によってデフォルトとして定義されているため(デフォルトの動作を変更する方法がないことも間違いありません)。数値列はvarchar型の列よりも効率的です。

関連する問題