Java JPA2和泛型类
在我的数据模型中,我需要一个通用表“DICTIONNARY”,它存储数据库中的所有值,如下所示:Java JPA2和泛型类,java,jakarta-ee,jpa-2.0,datapersistance,Java,Jakarta Ee,Jpa 2.0,Datapersistance,在我的数据模型中,我需要一个通用表“DICTIONNARY”,它存储数据库中的所有值,如下所示: TYP KEY VALUE --------------------------------- COUNTRY TUN TUNISIA COUNTRY FRA FRANCE PROFESSION LAW Lawyer PROFESSION FRA Farmer 还有其他一些
TYP KEY VALUE
---------------------------------
COUNTRY TUN TUNISIA
COUNTRY FRA FRANCE
PROFESSION LAW Lawyer
PROFESSION FRA Farmer
还有其他一些表可以引用通用表,比如TablePerson
CODE NAME COUNTRY PROFESSION
-----------------------------------------------------
1 PAUL TUN FRA
2 Armin FRA DOC
column Person.country只引用了dicionnary.key列,其中typ='country'
Person.profession只引用了dictionnary.key列,其中typ='profession'
是否有任何解决方案可以使用JPA2创建该数据模型
提前谢谢 取决于你所说的解决方案。我不认为有办法将两个实体映射到同一个表,除非使用继承 因此,选择是:
- 使用继承并使
和国家
的实体相关。检查职业
和@DiscriminatorColumn
@DiscriminatorValue
- 使用具有复合键的“通用”实体(
)。您的代码将把检索到的属性解释为两种可能@IdClass
- 修复您的数据模型。在同一个表中混合不相关的项不利于规范化设计,并且会使用其他数据库工具(如外键)产生问题。为国家和职业创建一个表格。这就是我建议的方法