我有一个是Hibernate的EntityManager的范围内管理的实体内。这个实体的确有一个由ENUM表示的状态。 Hibernate确实将整个数据库中的ENUM值保存起来。枚举序数JPA实体(休眠)
如何休眠执行查找时,ENUM本身不指定任何数值?它是否使用序数值(哦,亲爱的!)?
我有一个是Hibernate的EntityManager的范围内管理的实体内。这个实体的确有一个由ENUM表示的状态。 Hibernate确实将整个数据库中的ENUM值保存起来。枚举序数JPA实体(休眠)
如何休眠执行查找时,ENUM本身不指定任何数值?它是否使用序数值(哦,亲爱的!)?
通过指定要使用的枚举的名称声明的映射。
@Enumerated(EnumType.STRING)
private YourEnum yourEnum;
默认为EnumType.ORDINAL
。它将DB中的枚举作为与枚举类声明中的顺序相对应的数字。
而实际行为。
神奇的注解是@Enumerated
。
对于坚持枚举类型为字符串。
@Enumerated(EnumType.STRING)
用于将枚举类型保留为整数。
@Enumerated(EnumType.ORDINAL)
已经问真常。 – jklee
@jklee [ENUM + hibernate](http://stackoverflow.com/search?q=ENUM+hibernate)并没有真正回答这个问题,因为我不是在寻找一个技术解决方案,而是hibernate选择的一般方法。不过谢谢你回答这个问题;) – daPhantom
的确如此。更好的搜索是http://stackoverflow.com/search?q=ENUM+jpa。不客气。 – jklee