0

問題はこれです。私は汎用フレームワークを拡張して特定のプロジェクトに適用しています。フレームワークは Spring と Hibernate で動作します。ここではGenericClientSpecificClientの 2 つのクラスがあり、どちらもエンティティであり、SpecificClientはGenericClientから継承されます。

GenericClientはフレームワークの一部であり、これを変更することはできません。これは、このクラス@Inheritance(strategy = InheritanceType.JOINED)が使用できる唯一の継承型を宣言していないInheritanceType.SINGLE_TABLEためです。これは、これが注釈の既定値であるためです。

現在、私のコードは、継承ツリーのルートではありませんが、SpecificClient@Inheritance(strategy = InheritanceType.SINGLE_TABLE)で宣言されています。

バージョンの問題により、 の使用方法を見つける必要がありますInheritanceType.JOINED。良い点は、SpecificClientが常に継承ツリーの最後のクラスになることですが、異なるプロジェクトでは異なる可能性があります。

  • InheritanceType.JOINED親クラスに注釈を挿入できる方法はありますか?
  • 特定のプロジェクトのニーズに応じて、ある種類の他の継承を使用できるように、親クラスを宣言できる方法はありますか?
4

2 に答える 2

0

XMLを使用して、この継承ツリーのマッピングを定義できます。ドキュメントの関連セクションは次のとおりです。

于 2012-05-14T14:42:00.627 に答える
0

Hiberanteでエンティティとして使用するクラスを変更できない場合は、.hbm.xml構成ファイルを使用して変更できます。すべての機能が両方で利用可能である必要があるため、これらは注釈と混在させることができます。

于 2012-05-14T14:43:17.597 に答える