【问题标题】:How to set default enum value while using Hibernate's @Enumerated?如何在使用 Hibernate 的 @Enumerated 时设置默认枚举值?
【发布时间】:2014-11-30 14:03:36
【问题描述】:

我的 DB 表中有一个列,我想映射到 Java 对象。 我用注释标记了所选列:

@Enumerated(EnumType.STRING)
private RoleType code;

问题在于,在数据库方面,除了我感兴趣的值之外,还有无效的值(在我正在执行的任务的上下文中),所以我想将它们映射到“未知”类型。

ADMIN ("ADMIN "),
CLIENT ("CLIENT"),
SOMEBODY ("SOMEBODY"),
UNKNOWN ("UNKNOWN");

尝试执行上述操作时出现 Hibernate 映射错误。 是否可以使用 Hibernate 将不同于枚举(ADMIN、CLIENT、SOMEBODY)中提到的 3 的值映射到某个默认枚举值(即 UNKNOWN)?

编辑:

为了让事情更清楚

DB 端的值应该如何映射到 Java 端:

TYPE_1  --->  UNKNOWN
ADMIN  --->  ADMIN
CLIENT  --->  CLIENT
SOMEBODY  --->  SOMEBODY
TYPE_2  --->  UNKNOWN
SOMEBODY_2  --->  UNKNOWN

【问题讨论】:

  • 您的问题不清楚。你想达到什么目标?

标签: java hibernate enums


【解决方案1】:

好吧,您可以运行更新查询以使它们全部未知,但如果您不想这样做,您可以创建自己的用户类型: http://www.gabiaxel.com/2011/01/better-enum-mapping-with-hibernate.html

【讨论】:

    猜你喜欢
    • 2021-08-23
    • 1970-01-01
    • 2021-10-16
    • 2011-07-23
    • 1970-01-01
    • 2011-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多