使用JPA存储枚举值

时间:2016-07-07 18:17:02

标签: java spring hibernate jpa enums

说我有一个枚举:

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;

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

1 个答案:

答案 0 :(得分:4)

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

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转换器的链接显示了这种情况的确切实现。 Is it possible to write a generic enum converter for JPA?