我们有一个hibernate映射文件(hbm.xml文件),它将我们域的一部分映射到数据库。此部分包含继承层次结构。即我们有一个父类'Parent'和几个子类'Child1','Child2',......
由于hibernate映射文件的结构,子类位于父<class>
XML标记内<joined-subclass>
。
由于此映射文件变得越来越大,我们现在想要拆分它。有没有办法为每个子类都有一个映射文件?
答案 0 :(得分:3)
新XML中的标记:
<joined-subclass />
或者
<hibernate-mapping>
<subclass name="DomesticCat" extends="Cat" discriminator-value="D">
<property name="name" type="string"/>
</subclass>
</hibernate-mapping>
从hibernate站点中提取:
It is possible to define subclass, union-subclass, and joined-subclass mappings in separate mapping documents directly.
参考:http://docs.jboss.org/hibernate/core/3.3/reference/en/html/inheritance.html
乌
答案 1 :(得分:0)
您可以在XML中使用ENTITY定义:
在主hbm.xml文件中:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" [
<!ENTITY subclass1 SYSTEM "classpath://my/hbms/subclass1.xml">
<!ENTITY subclass2 SYSTEM "classpath://my/hbms/subclass2.xml">
]>
<hibernate-mapping>
<class name="my.pkg.Parent">
...
&subclass1;
&subclass2;
</class>
我的/ hbms / subclass1.xml:
<joined-subclass name="subclass1">
<!-- all the subclass definitions -->
</joined-subclass>
我的/ hbms / subclass2.xml:
<joined-subclass name="subclass2">
<!-- all the subclass definitions -->
</joined-subclass>