【问题标题】:Storing Enum Values with JPA使用 JPA 存储枚举值
【发布时间】:2016-11-10 04:39:15
【问题描述】:

假设我有一个枚举:

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;

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

【问题讨论】:

  • 只是要注意,您的枚举是可变的,建议将枚举字段设为final。并考虑使用public getter 将value 字段声明为private

标签: java spring hibernate jpa enums


【解决方案1】:

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

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 上处理属性转换器的另一个链接显示了此类的确切实现。 Is it possible to write a generic enum converter for JPA?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-03
    • 2019-04-22
    • 2019-05-09
    • 1970-01-01
    • 1970-01-01
    • 2013-03-02
    • 2012-06-07
    • 2019-05-29
    相关资源
    最近更新 更多