在hibernate中,是否可以使用联接表中的列作为主表中的鉴别器?
这是我的例子。
主表Map:
<hibernate-mapping>
<class name="hibernate.Entity" table="ENTITY">
<id name="id" type="int" unsaved-value="0" >
<generator class="sequence">
<param name="sequence">SEQ_ENTITY</param>
</generator>
</id>
<discriminator column="ENTITY_TYPE.KEY" type="integer"/>
<many-to-one
name="type"
class="hibernate.EntityType"
column="ENTITY_TYPE_ID"
lazy="false"
insert="false" update="false"
/>
<property name="name" column="NAME"/>
<subclass name="hibernate.EntityType1" discriminator-value="TYPE 1" />
<subclass name="hibernate.EntityType2" discriminator-value="TYPE 2" />
</class>
</hibernate-mapping>
联接表Map:
<hibernate-mapping>
<class name="hibernate.EntityType" table="ENTITY_TYPE">
<id name="id" type="int" unsaved-value="0" >
<generator class="sequence">
<param name="sequence">SEQ_ENTITY_TYPE</param>
</generator>
</id>
<property name="key" column="KEY"/>
<property name="description" column="DESCRIPTION"/>
</class>
</hibernate-mapping>
那么,主要的问题是,有没有可能这样定义鉴别器: <discriminator column="ENTITY_TYPE.KEY" type="integer"/>
.
当然,我可以使用主表中的实体类型id字段作为鉴别器值,但我不想在Map中硬编码实体类型id。使用entity_type.key作为鉴别器更像是引用完整性解决方案,但我不知道这是否可行。
为我的英语道歉,提前谢谢你的帮助!
暂无答案!
目前还没有任何答案,快来回答吧!