如何使用XML在Hibernate中映射此多态性,而不创建额外的父表?

如何使用XML在Hibernate中映射此多态性,而不创建额外的父表?,hibernate,uuid,hibernate-mapping,Hibernate,Uuid,Hibernate Mapping,我试图在Hibernate中映射POJO树,这样我就可以(a)在任何地方简洁地使用UUID作为主键,以及(b)在其他不相关的表之间外部施加类似集合的关系。使用注释似乎效果很好,但就我个人而言,我无法使用HBM XML映射实现同样的效果 例如,给定以下(缩写)类: 同时,我试图转向XML配置。POJO是从XML模式生成的。因为源代码是生成的,所以我试图避免手动编辑它来添加注释 我已经尝试了我能想到的所有XML配置(以及在Hibernate工具中玩弄的输出)。我想不出一个配置,它既不能创建一个额外的

我试图在Hibernate中映射POJO树,这样我就可以(a)在任何地方简洁地使用UUID作为主键,以及(b)在其他不相关的表之间外部施加类似集合的关系。使用注释似乎效果很好,但就我个人而言,我无法使用HBM XML映射实现同样的效果

例如,给定以下(缩写)类:

同时,我试图转向XML配置。POJO是从XML模式生成的。因为源代码是生成的,所以我试图避免手动编辑它来添加注释

我已经尝试了我能想到的所有XML配置(以及在Hibernate工具中玩弄
的输出)。我想不出一个配置,它既不能创建一个额外的
唯一的
父表,包括一个额外的连接,也不能在会话工厂中失败,并出现以下错误:

关联引用未映射的类:唯一


有人对我的XML配置文件应该是什么样子有什么建议吗?还是我走了一条不好的路?

是这样的:

<class name="Unique" abstract = "true">
    <id name="uuid" />

    <union-subclass name="Relationship">
        <set name="members" table = "Relationship_Unique" >
            <key />
            <many-to-many class = "Unique" unique="true"/>
        </set>
    </union-subclass>

    <union-subclass name="Activity">
        <property name = "name" />
    </union-subclass>

    <union-subclass name="AssociaXML">
        <property name = "xml" />
    </union-subclass>
</class>

另请参见:


    • 是这样的:

      <class name="Unique" abstract = "true">
          <id name="uuid" />
      
          <union-subclass name="Relationship">
              <set name="members" table = "Relationship_Unique" >
                  <key />
                  <many-to-many class = "Unique" unique="true"/>
              </set>
          </union-subclass>
      
          <union-subclass name="Activity">
              <property name = "name" />
          </union-subclass>
      
          <union-subclass name="AssociaXML">
              <property name = "xml" />
          </union-subclass>
      </class>
      
      
      
      另请参见:


      啊哈!这将创建与注释完全相同的表,并通过相同的查询测试。圣诞快乐(或宽扎节或喜庆节等)!啊哈!这将创建与注释完全相同的表,并通过相同的查询测试。圣诞快乐(或宽扎节或喜庆节等)!
      <class name="Unique" abstract = "true">
          <id name="uuid" />
      
          <union-subclass name="Relationship">
              <set name="members" table = "Relationship_Unique" >
                  <key />
                  <many-to-many class = "Unique" unique="true"/>
              </set>
          </union-subclass>
      
          <union-subclass name="Activity">
              <property name = "name" />
          </union-subclass>
      
          <union-subclass name="AssociaXML">
              <property name = "xml" />
          </union-subclass>
      </class>