2017-02-10 142 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)