0

私のデータモデルでは、次のようにデータベースにすべての値を格納する汎用テーブル「DICTIONNARY」が必要です。

TYP         KEY          VALUE
---------------------------------
COUNTRY     TUN          TUNISIA
COUNTRY     FRA          FRANCE
PROFESSION  LAW          Lawyer
PROFESSION  FRA          Farmer

テーブルPersonのような汎用テーブルを参照できる他のテーブルがあります

CODE        NAME         COUNTRY          PROFESSION
-----------------------------------------------------
1           PAUL         TUN              FRA      
2           Armin        FRA              DOC

Person.country 列は、typ='COUNTRY' の列 dictionnary.key を参照するだけで、Person.profession は、typ='PROFESSION' の列 dictionnary.key を参照するだけです。

そのDataModelをJPA 2で作成するソリューションはありますか.

前もって感謝します !!

4

1 に答える 1

1

解決策の意味によって異なります。継承を使用しない限り、2 つのエンティティを同じテーブルにマップする方法はないと思います。

したがって、オプションは次のとおりです。

  • 継承を使用して、 と のエンティティをCountry関連付けProfessionます。と を確認@DiscriminatorColumnしてください@DiscriminatorValue詳細はこちら

  • 複合キー ( ) を持つ「一般的な」エンティティを使用します@IdClass。取得した属性をどちらかの可能性として解釈するのはコードです。

  • データモデルを修正してください。同じテーブルに無関係なアイテムを混在させると、正規化された設計に反し、他のデータベース ツール (外部キーなど) を使用する際に問題が発生します。国用のテーブルと職業用のテーブルを作成します。これが私がアドバイスするアプローチです。

于 2013-10-13T10:58:19.170 に答える