更改枚举的默认hibernate映射策略

时间:2011-01-19 12:09:49

标签: hibernate enums mapping default

使用Hibernate时,枚举的dafault映射策略是ORDINAL。因为我认为STRING策略更强大,我想更改默认的映射策略以支持它。

目前我必须在任何枚举上使用以下内容:

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

有没有办法告诉hibernate总是使用STRING策略?我的研究没有提出一些允许改变这种行为的属性。

或者它是不可能的,因为JPA将ORDINAL指定为默认值,我们应该明确注释它以保持O / R-Mapper中性?

1 个答案:

答案 0 :(得分:2)

我同意你的观点,EnumType.STRING更强大,特别是在重构源代码时,因为枚举中的常量的chaging顺序通常是通过疏忽完成的(或者仅仅是因为有人按字母顺序对它们进行排序)。

但是你也没有办法改变默认行为,因为ORDINAL映射已经被设计为默认行为(可能是因为数字列比varchar类型列更有效)。

相关问题