作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我有一个表 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/
我是一名优秀的程序员,十分优秀!