gpt4 book ai didi

java - 如何在使用 Hibernate 的 @Enumerated 时设置默认枚举值?

转载 作者:搜寻专家 更新时间:2023-11-01 03:51:35 26 4
gpt4 key购买 nike

我的数据库表中有一列要映射到 Java 对象。我用注释标记了所选列:

@Enumerated(EnumType.STRING)
private RoleType code;

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

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

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

编辑:

为了让事情更清楚

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

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

最佳答案

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

关于java - 如何在使用 Hibernate 的 @Enumerated 时设置默认枚举值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26214080/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com