2012-01-09 19 views
4

私は別の埋め込み可能なクラスXYZから拡張された埋め込み可能なクラスABCを持っています。 ABCのオブジェクトはエンティティに埋め込まれています。エンティティに対応するテーブルには、ABCの要素のみが含まれ、XYZの要素は含まれません。私もそれらを得るために何をすべきですか?JPAでEmbeddableクラスを拡張する

私は、Descriptor Customizerが動作すると聞いています。私はどうしたらいいですか?他の方法はありますか?

+0

エラー、テーブルに必要な列を追加してください。 ABCがXYZを拡張する場合、XYZであるため、XYZのすべてのフィールドがテーブルに必要です。必要でない場合は、ABC拡張のXYZを使用しないでください。 –

+0

ABCはXYZを拡張する唯一のクラスではありません –

+0

だから何ですか?私のポイントは残っている。他の拡張クラスで同じ問題がある場合は、XYZを拡張しないでください。 –

答えて

0

XYZのDescriptorCustomizerでInheritancePolicyクラスのIndicatorFieldを設定する必要があります。次に、XYZを拡張するABCの集約記述子を定義する必要があります。そのためには、SessionCustomizerが必要です。

1

This document of oracle javaEEお手伝いがあります。これによると、InheritanceType.SINGLE_TABLEはデフォルトの戦略です。要件にはInheritanceType.TABLE_PER_CLASSが必要な場合があります。

それはEntity Inheritance Mapping Strategiesトピックに記載されていますが、私は「埋め込み可能」でも機能すると信じています。

0

誰かがこのDescriptorCustomizerを書く方法の例を挙げることができますか? 私のXYZクラスにはたくさんの文字列とuidがあります。 XYZのフィールドを表示するためにABCが埋め込まれたオブジェクトを取得できません。 (私はこれを行うことができた唯一の方法は、すべてのXYZsフィールドのゲッターをABCに入れていいことではありません)

関連する問題