请教高手hibernate POJO的继承问题?
映射文件:
<hibernate-mapping package="test2.bo">
<class name="Party" table="[PARTY]">
<id name="partyId" column="PARTY_ID" type="java.lang.Integer">
<generator class="increment"/>
</id>
<property name="partyName" column="PARTY_NAME" type="java.lang.String" not-null="true" />
<set name="userSet" inverse="true">
<key column="PARTY_ID"/>
<one-to-many class="User"/>
</set>
<joined-subclass name="SubParty2" table="[SUB_PARTY2]">
<key column="PARTY_ID"/>
<property name="subParty2Name" column="SUB_PARTY2_NAME" type="java.lang.String" not-null="true" />
</joined-subclass>
<joined-subclass name="SubParty1" table="[SUB_PARTY1]">
<key column="PARTY_ID"/>
<property name="subPartyName" column="SUB_PARTY_NAME" type="java.lang.String" not-null="true" />
</joined-subclass>
</class>
</hibernate-mapping>
配置文件中我只加入了<mapping resource="test2/bo/Party.hbm.xml" />
SubParty1的定义为:
public class SubParty1 extends Party
implements Serializable
SubParty2的定义为:
public class SubParty2 extends Party
implements Serializable
测试的时候,我发现,如果按照如下代码的话,基本上哪一个<joined-subclass>配在前面,哪个就能进行类型转换,后一个就不行,报类型转换错误。。。。。。。。。。。。。
/*Party party=(Party)session.get(Party.class,new Integer(1));
System.out.println(((SubParty1)party).getSubPartyName());
System.out.println(((SubParty2)party).getSubParty2Name());
System.out.println(party.getPartyName());*/
请问为什么会发生这样的问题,我应该如何解决?