【问题标题】:Splitting Hibernate configuration files (hbm.xml files) when using subclasses使用子类时拆分 Hibernate 配置文件(hbm.xml 文件)
【发布时间】:2011-09-15 08:22:55
【问题描述】:

我们有一个休眠映射文件(hbm.xml 文件),它将我们域的一部分映射到数据库。这部分包含一个继承层次结构。 IE。我们有一个父类 'Parent' 和几个子类 'Child1'、'Child2'、...

由于休眠映射文件的结构,子类位于父类<class> XML 标记中,即<joined-subclass>

由于这个映射文件变得越来越大,我们现在想要拆分它。有没有办法为每个子类创建一个映射文件?

【问题讨论】:

    标签: java hibernate hibernate-mapping


    【解决方案1】:

    新 XML 中的标签:

    <joined-subclass />
    

    或者

    <hibernate-mapping>
     <subclass name="DomesticCat" extends="Cat" discriminator-value="D">
          <property name="name" type="string"/>
     </subclass>
     </hibernate-mapping>
    

    从休眠站点中提取:

    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

    乌多

    【讨论】:

      【解决方案2】:

      您可以在 XML 中使用实体定义:

      在您的主 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>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-31
        • 2013-11-25
        • 1970-01-01
        • 1970-01-01
        • 2011-12-25
        • 2014-05-18
        • 1970-01-01
        • 2012-05-09
        相关资源
        最近更新 更多