2011-01-19 89 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类型列更有效)。