テーブルに事前構成されたデータを持つ読み取り専用の「カタログ」エンティティがあります。「BookCatalog」は、「Catalog」テーブルと多対1の関係を持つ別のエンティティです。
現在、私の設定ファイルは次のとおりです。
<!--Catalog -->
<class name="xxxx.Catalog" table="CATALOG" mutable="false">
....
....
<property name="a" type="string">
<column name="A" />
</property>
<property name="b" type="string">
<column name="B" />
</property>
</class>
<!-- Book Catalog -->
<class name="xxxx.BookCatalog" table="BOOK_CATALOG">
....
....
<many-to-one name="base_catalog" class="xxxx.Catalog" fetch="select">
<column name="BASE_CATALOG_ID" length="36" />
</many-to-one>
<property name="c" type="string">
<column name="C" />
</property>
</class>
現在、読み取り専用プロパティaおよびbにアクセスする場合は、「base_catalog」フィールドからアクセスする必要があります。
BookCatalogをCatalogのサブクラスとして作成し、「CATALOG」読み取り専用テーブルからプロパティaとbをマップすることを好みます。
CATALOGテーブルのすべてのフィールドに「数式」を使用できることはわかっていますが、フィールドがもっとたくさんあるため、効率的ではありません。
関連するエンティティの列を関連するエンティティフィールドにマップするHibernateの他の方法はありますか?
また
この問題を解決するためのより良いデータベース設計はありますか?