我有一個是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