hibernate使用联接表中的列作为鉴别器

vohkndzv  于 2021-06-30  发布在  Java
关注(0)|答案(0)|浏览(206)

在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作为鉴别器更像是引用完整性解决方案,但我不知道这是否可行。
为我的英语道歉,提前谢谢你的帮助!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题