Hibernate 异常字段';鉴别器';不';没有默认值
我有以下映射文件Hibernate 异常字段';鉴别器';不';没有默认值,hibernate,Hibernate,我有以下映射文件 <hibernate-mapping> <class name="One" abstract="true"> <id name="id" type="long" column="ID"> <generator class="assigned"/> </id> <discriminator column="DISCRIMINATOR" type
<hibernate-mapping>
<class name="One" abstract="true">
<id name="id" type="long" column="ID">
<generator class="assigned"/>
</id>
<discriminator column="DISCRIMINATOR" type="string" />
<union-subclass name="Two" table="TWO">
.
.
</union-subclass>
<union-subclass name="Three" table="THREE">
.
.
</union-subclass>
</class>
</hibernate-mapping>
<hibernate-mapping>
<subclass name="TWOSUB" extends="TWO">
.
.
</subclass>
</hibernate-mapping>
.
.
.
.
.
.
当我尝试添加TWOSUB的对象时,它会引发以下异常
字段“鉴别器”没有默认值
上面的映射有什么问题?您需要将discriminator value=“YOUR\u CUSTOM\u SUBCLASS\u discriminator\u value”添加到通过使用discriminator相互区分的所有类标记中(因此映射到同一个表中)。否则,hibernate不知道使用哪个鉴别器值来区分它们 然而,我认为不可能用使用鉴别器的子类来扩展一个联合子类——要么必须为类TWOSUB使用另一个联合子类,要么根本不使用联合子类从一个继承两个。至少union子类标记没有鉴别器值属性,因此无法区分TWO和TWOSUB。您尝试过吗?