使用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; 

但如果可能的话,不确定如何得到我想要的东西。

您可以声明自己的用户类型来执行字符串和枚举之间的转换,您可以在本文中找到更多信息:

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

一个小注释UserType是Hibernate特有的。 如果您只想使用JPA。 你需要属性转换器。 怎么做你可以在这里找到:

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

Stackoverflow上另外一个处理Atribute转换器的链接显示了这种情况的确切实现。 是否可以为JPA编写通用枚举转换器?