2016-07-07 78 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

好的答案可以接受吗? –