2016-07-07 76 views
2

說我有一個枚舉:貯藏枚舉值與JPA

public enum NotificationType { 

    Store("S"), 
    Employee("E"), 
    Department("D"), 
    All("A"); 

    public String value; 

    NotificationType(String value) { 
     this.value = value; 
    } 
} 

我想存儲SE而非StoreEmployee在數據庫中。目前,我已將它映射到實體中,如下所示:

@Enumerated(EnumType.STRING) 
private NotificationType notificationType; 

但是如果可能的話,不確定如何獲得我想要的。

+2

只是想說明一下,你的枚舉是可變的,建議使枚舉字段爲final。並考慮用'public' getter聲明字段'value'爲'private'。 –

回答

3

你可以聲明自己的用戶類型做字符串和枚舉之間的轉換,你可以找到更多在這篇文章中:

http://javadata.blogspot.no/2011/07/hibernate-and-enum-handling.html

一小句話用戶類型是Hibernate的具體。如果你只想使用JPA。你需要屬性轉換器。如何做到這一點,你可以在這裏找到:

http://www.thoughts-on-java.org/jpa-21-type-converter-better-way-to/

還有一#2處理屬性約轉換器的鏈接顯示這樣的具體實現。 Is it possible to write a generic enum converter for JPA?

+0

我結束了使用轉換器。 – Gregg

+0

好的答案可以接受嗎? –