我们可以在Hibernate中的单个映射文件中映射所有实体吗?

时间:2015-08-06 05:32:13

标签: java hibernate hibernate-mapping

我有许多模型实体,如

class Employee {

   private Integer id;

   private String name;  

}


class Address {

   private Integer id;

   private String address;  

}

还有更多..

我们可以在单个hbm xml 映射文件中将所有实体映射到一起吗? 我知道这可能不是一个好习惯。但我们仍然能做到吗?如果是,那么如何?

2 个答案:

答案 0 :(得分:1)

是。可以使用单个映射文件。

这样的事情:

<hibernate-mapping>
    <class name="Employee" table="employee">
        <id name="id" type="java.lang.Integer">
            <column name="id"/>
            <generator class="native"/>
        </id>
        <property name="name" type="java.lang.String">
            <column name="name"/>
        </property>
    </class>

    <class name="Address" table="address">
        <id name="id" type="java.lang.Integer">
            <column name="id"/>
            <generator class="native"/>
        </id>
        <property name="address" type="java.lang.String">
            <column name="address"></column>
        </property>
    </class>
</hibernate-mapping>

答案 1 :(得分:1)

是的,你可以这样做,dtd(http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd)允许hibernate-mapping中的多个类元素:

<!ELEMENT hibernate-mapping (
    ...
    (class|subclass|joined-subclass|union-subclass)*,
    ...
)>

即使是文档(http://docs.jboss.org/hibernate/orm/4.3/manual/en-US/html/ch05.html#mapping-declaration,第二个代码块)也会在同一个文件中将CatDog类作为示例进行映射。