2011-01-19 90 views
3

使用Hibernate時,枚舉的默認映射策略是ORDINAL。因爲我認爲STRING策略更加強大,所以我想更改默認映射策略來支持這一策略。更改枚舉的默認hibernate映射策略

目前我有使用上的任何列舉如下:

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

有沒有辦法告訴Hibernate總是使用STRING策略?我的研究沒有提出一些可以改變這種行爲的特性。

或者是不可能的,因爲JPA指定ORDINAL爲默認值,我們應該明確註釋它以保持O/R-Mapper的中性?

回答

2

我同意你的觀點,EnumType.STRING更加健壯,尤其是在重構源代碼時,因爲enum中常量的chaging順序通常是由不經意(或僅僅因爲某人按字母順序排序)完成的。

但是你也對,沒有辦法改變默認行爲,因爲ORDINAL映射已被定義爲默認設計(可能是因爲數字列比varchar類型列更有效)。