关于继承映射。
User类是基类,DefaultUser类和PowerUser类是子类。
采用整个继承体系一张表来实现。
<hibernate-mapping>
    <class name="yscomputer.hibernate0606.hibernate.User" table="User2" catalog="Hibernate06DB">
        <id name="id" type="java.lang.Integer">
            <column name="Id" /> 
            <generator class="native" />           
        </id>
        <property name="name" type="java.lang.String">
            <column name="Name" length="20" />
        </property>        
        <discriminator column="UserType" type="java.lang.String" />
        <subclass name="yscomputer.hibernate0606.hibernate.DefaultUser" 
     descriminator-value="default">
         <property name="SomeProperty" type="java.lang.String">
         <column name="SomeProperty" length="20" />
         </property>
        </subclass>
        <subclass name="yscomputer.hibernate0606.hibernate.PowerUser" 
         descriminator-value="power">
         <property name="OtherProperty" type="java.lang.String">
         <column name="OtherProperty" length="20" />
         </property>
        </subclass>
    </class>    
</hibernate-mapping>总提示错误:
Could not parse mapping document from resource yscomputer/hibernate0606/hibernate/User2.hbm.xml
Caused by: org.xml.sax.SAXParseException: Attribute "descriminator-value" must be declared for element type "subclass".目前就定义了一张表User,在User类中没有定义UserType属性。

解决方案 »

  1.   

    Attribute "descriminator-value" must be declared for element type "subclass". 
      都告诉你怎么设置啦哈, 兄弟.
     在<subclass name...> 标签中需要加入一个属性
    如<subclass name="Bird" discriminator-value="B">...</...>
    <subclass name="Pig" discriminator-value="P">...</...>
     也就是说会在数据库中加入一个冗余字段去实现哈
     
      

  2.   

    无法解析的资源yscomputer/hibernate0606/hibernate/User2.hbm.xml映射文档原因是:org.xml.sax.SAXParseException:属性“descriminator-value ”必须为元素类型宣布为“subclass”。
      

  3.   

    在主类中少了一个descriminator-value属性,导致不能解析