java - 如何处理java枚举和数据库表之间的重复?

标签 java sql database orm enums

在我们的应用程序中,某些实体必须由枚举表示,这是很常见的情况:例如类型、类别、状态等。

通常,代码中有条件或流程使用值来决定一个 Action 或另一个 Action ,因此应用程序必须以某种方式“知道”这些值(即它必须能够引用一个特定的实例来决定而不是引用整个类)。这就是我们使用枚举而不是普通类的原因。

问题是这些实体还需要作为其他实体的字段存储(或至少引用)在数据库中。我们通常为每个实体创建一个表,以便能够在这些列中进行引用完整性检查,并且数据仅在数据库中具有“意义”,而无需引用枚举来找出每个 id 的含义.

理想情况下,这些实体的数据应该从枚举中的数据中填充,但现在我们在 db 初始化脚本中重复了这些值。

当使用像 Hibernate 这样的 ORM 时,它会变得有点复杂。

我想知道其他人如何处理这种情况。

我对在枚举和数据库表之间存在重复的想法并不完全满意,但我还没有找到更好的解决方案。

最佳答案

试试这个问题的答案:Ways to save enums in database

关于java - 如何处理java枚举和数据库表之间的重复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/691137/

相关文章:

php - 如果存在 mysqli php 则编辑重复项

sql - 在 SQL 中选择包含所有子项的父记录

mysql - 按非标准日期格式排序

sql - 显示同一行中单列的多列

database - TOAD for DB2 的免费替代品

sql - 由于排序规则不匹配,对两个数据库的查询有错误

java - 在liferay portlet和servlet之间共享Session

java - 斯坦福CoreNLP NoSuchMethodError

java - 如何在嵌入式编辑器中显示打印边距/垂直线?

java - JPA 2 查询在 OR 子句上给出奇怪的行为