gpt4 book ai didi

java - 使用 hibernate 注释将枚举映射到表

转载 作者:IT老高 更新时间:2023-10-28 21:12:21 24 4
gpt4 key购买 nike

我有一个表 DEAL 和一个表 DEAL_TYPE。我想映射这段代码:

public class Deal {
DealType type;
}

public enum DealType {
BASE("Base"), EXTRA("Extra");
}

问题是数据已经存在于数据库中。而且我很难将类映射到数据库。

数据库看起来像这样:

   TABLE DEAL {
Long id;
Long typeId;
}

TABLE DEAL_TYPE {
Long id;
String text;
}

我知道我可以在交易类型之间使用简单的@OneToMany 关系,但我更喜欢使用枚举。这可能吗?

我几乎可以通过使用 EnumType.ORDINAL 类型来实现它。但不幸的是,我的交易类型表中的 ID 不是连续的,并且不是从 1 开始的。

有什么建议吗?

最佳答案

Hibernate 在 Enums 中有点糟糕。这是一个非常好的 ORM 的奇怪失败。解决它的“最简单”的方法是将您的 Enum 声明为自定义 hibernate 类型。幸运的是,Hibernate 编写了一个示例实现,您可以将它逐字写入您的应用程序中:

http://www.hibernate.org/265.html

它们甚至包括如何使用它的说明。这是我在最终需要持久化枚举时使用的模式。

关于java - 使用 hibernate 注释将枚举映射到表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/735732/

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