Java JPA2和泛型类

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 还有其他一些

在我的数据模型中,我需要一个通用表“DICTIONNARY”,它存储数据库中的所有值,如下所示:

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
    )。您的代码将把检索到的属性解释为两种可能

  • 修复您的数据模型。在同一个表中混合不相关的项不利于规范化设计,并且会使用其他数据库工具(如外键)产生问题。为国家和职业创建一个表格。这就是我建议的方法