企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 5.1.16\. 连接的子类(joined-subclass) 此外,每个子类可能被映射到他自己的表中(每个子类一个表的策略)。被继承的状态通过和超类的表关联得到。我们使用`&lt;joined-subclass&gt;`元素。 ``` <joined-subclass name="ClassName" table="tablename" proxy="ProxyInterface" lazy="true|false" dynamic-update="true|false" dynamic-insert="true|false" schema="schema" catalog="catalog" extends="SuperclassName" persister="ClassName" subselect="SQL expression" entity-name="EntityName" node="element-name"> <key .... > <property .... /> ..... </joined-subclass> ``` | ![1](img/1.png) | `name`: 子类的全限定名。 | |:--- |:--- | | ![2](img/2.png) | `table`: 子类的表名. | | ![3](img/3.png) | `proxy` (可选): 指定一个类或者接口,在延迟装载时作为代理使用。 | | ![4](img/4.png) | `lazy` (可选, 默认是 `true`): 设置为 `lazy="false"` 禁止使用延迟装载。 | 这种映射策略不需要指定辨别标志(discriminator)字段。但是,每一个子类都必须使用`&lt;key&gt;`元素指定一个表字段来持有对象的标识符。本章开始的映射可以被用如下方式重写: ``` <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="eg"> <class name="Cat" table="CATS"> <id name="id" column="uid" type="long"> <generator class="hilo"/> </id> <property name="birthdate" type="date"/> <property name="color" not-null="true"/> <property name="sex" not-null="true"/> <property name="weight"/> <many-to-one name="mate"/> <set name="kittens"> <key column="MOTHER"/> <one-to-many class="Cat"/> </set> <joined-subclass name="DomesticCat" table="DOMESTIC_CATS"> <key column="CAT"/> <property name="name" type="string"/> </joined-subclass> </class> <class name="eg.Dog"> <!-- mapping for Dog could go here --> </class> </hibernate-mapping> ``` 更多关于继承映射的信息,参考[第 9 章 _继承映射(Inheritance Mappings)_](../Text/pr01_split_000.html "第 9 章 继承映射(Inheritance Mappings)")。