私は別の埋め込み可能なクラスXYZから拡張された埋め込み可能なクラスABCを持っています。 ABCのオブジェクトはエンティティに埋め込まれています。エンティティに対応するテーブルには、ABCの要素のみが含まれ、XYZの要素は含まれません。私もそれらを得るために何をすべきですか?JPAでEmbeddableクラスを拡張する
私は、Descriptor Customizerが動作すると聞いています。私はどうしたらいいですか?他の方法はありますか?
私は別の埋め込み可能なクラスXYZから拡張された埋め込み可能なクラスABCを持っています。 ABCのオブジェクトはエンティティに埋め込まれています。エンティティに対応するテーブルには、ABCの要素のみが含まれ、XYZの要素は含まれません。私もそれらを得るために何をすべきですか?JPAでEmbeddableクラスを拡張する
私は、Descriptor Customizerが動作すると聞いています。私はどうしたらいいですか?他の方法はありますか?
XYZのDescriptorCustomizerでInheritancePolicyクラスのIndicatorFieldを設定する必要があります。次に、XYZを拡張するABCの集約記述子を定義する必要があります。そのためには、SessionCustomizerが必要です。
This document of oracle javaEEお手伝いがあります。これによると、InheritanceType.SINGLE_TABLEはデフォルトの戦略です。要件にはInheritanceType.TABLE_PER_CLASSが必要な場合があります。
それはEntity Inheritance Mapping Strategies
トピックに記載されていますが、私は「埋め込み可能」でも機能すると信じています。
誰かがこのDescriptorCustomizerを書く方法の例を挙げることができますか? 私のXYZクラスにはたくさんの文字列とuidがあります。 XYZのフィールドを表示するためにABCが埋め込まれたオブジェクトを取得できません。 (私はこれを行うことができた唯一の方法は、すべてのXYZsフィールドのゲッターをABCに入れていいことではありません)
エラー、テーブルに必要な列を追加してください。 ABCがXYZを拡張する場合、XYZであるため、XYZのすべてのフィールドがテーブルに必要です。必要でない場合は、ABC拡張のXYZを使用しないでください。 –
ABCはXYZを拡張する唯一のクラスではありません –
だから何ですか?私のポイントは残っている。他の拡張クラスで同じ問題がある場合は、XYZを拡張しないでください。 –