2017-02-10 146 views
1

我有一个是Hibernate的EntityManager的范围内管理的实体内。这个实体的确有一个由ENUM表示的状态。 Hibernate确实将整个数据库中的ENUM值保存起来。枚举序数JPA实体(休眠)

如何休眠执行查找时,ENUM本身不指定任何数值?它是否使用序数值(哦,亲爱的!)?

+0

已经问真常。 – jklee

+0

@jklee [ENUM + hibernate](http://stackoverflow.com/search?q=ENUM+hibernate)并没有真正回答这个问题,因为我不是在寻找一个技术解决方案,而是hibernate选择的一般方法。不过谢谢你回答这个问题;) – daPhantom

+0

的确如此。更好的搜索是http://stackoverflow.com/search?q=ENUM+jpa。不客气。 – jklee

回答

3

通过指定要使用的枚举的名称声明的映射。

@Enumerated(EnumType.STRING) 
private YourEnum yourEnum; 

默认为EnumType.ORDINAL。它将DB中的枚举作为与枚举类声明中的顺序相对应的数字。

而实际行为。

1

神奇的注解是@Enumerated

对于坚持枚举类型为字符串。

@Enumerated(EnumType.STRING) 

用于将枚举类型保留为整数。

@Enumerated(EnumType.ORDINAL)