有一个只读的“目录”实体,它在表中预先配置了数据。“BookCatalog”是另一个与“Catalog”表具有多对一关系的实体。
目前我的配置文件如下,
<!--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 表中的每个字段使用“公式”,但由于我有更多字段,因此效率不高。
休眠中有没有其他方法可以将关联实体的列映射到关联实体字段?
或者
有没有更好的数据库设计来解决这个问题?