使用Hibernate时,枚举的dafault映射策略是ORDINAL。因为我认为STRING策略更强大,我想更改默认的映射策略以支持它。
目前我必须在任何枚举上使用以下内容:
@Enumerated(EnumType.STRING)
@Column(nullable=false)
private MyEnum myEnum;
有没有办法告诉hibernate总是使用STRING策略?我的研究没有提出一些允许改变这种行为的属性。
或者它是不可能的,因为JPA将ORDINAL指定为默认值,我们应该明确注释它以保持O / R-Mapper中性?
答案 0 :(得分:2)
我同意你的观点,EnumType.STRING
更强大,特别是在重构源代码时,因为枚举中的常量的chaging顺序通常是通过疏忽完成的(或者仅仅是因为有人按字母顺序对它们进行排序)。
但是你也没有办法改变默认行为,因为ORDINAL映射已经被设计为默认行为(可能是因为数字列比varchar类型列更有效)。