繁体   English   中英

插入复合键休眠

[英]Insert a composite key hibernate

我在休眠中遇到类映射问题。 我正在尝试使用复合ID建立多对一关系。 并且映射正在返回

实体映射中的重复列:br.com.is.isenterprise.cre.model.ClienteRegraIcmsMap列:EMPRESAID(应映射为insert =“ false” update =“ false”)

但是,如果我设置多对一关系来insert =" false "update =" false ,则无法在数据库中插入regraIcmsSubistituta的ID。

RegraIcms.hbm.xml

<hibernate-mapping package="br.com.is.isenterprise.efi.model">

    <class name="RegraIcms" table="REGRAICMS">
        <composite-id name="cid" class="br.com.is.isenterprise.efi.model.RegraIcmsId">
            <key-property name="empCod" type="integer" column="EMPCOD"/>
            <key-property name="idRegraIcms" type="integer" column="IDREGRAICMS"/>
        </composite-id>

        <property name="descricao" type="string" column="DESCRICAO" access="field"/>
        <property name="aplicacao" type="integer" column="APLICACAO" access="field"/>   

    </class>

</hibernate-mapping>

ClienteRegraIcmsMapId.hbm.xml

    <class name="ClienteRegraIcmsMap" table="CLIENTEREGRAICMSMAP">
        <composite-id name="cid" class="br.com.is.isenterprise.cre.model.ClienteRegraIcmsMapId">
            <key-many-to-one name="cliente"  column="CLIENTEID" class="br.com.is.isenterprise.cre.model.Cliente" access="field" lazy="false"/>
            <key-many-to-one name="regraIcms" class="br.com.is.isenterprise.efi.model.RegraIcms" access="field" lazy="false">
                <column name="EMPRESAID"/>      
                <column name="REGRAICMSID"/>
            </key-many-to-one>      
        </composite-id>
        <version name="versao" type="integer" column="VERSAO"/>
        <many-to-one name="regraIcmsSubstituta" class="br.com.is.isenterprise.efi.model.RegraIcms" access="field" lazy="false">
            <column name="EMPRESAID"/>      
            <column name="REGRAICMSSUBSTITUTAID"/>
        </many-to-one>
    </class>
</hibernate-mapping>

您试图将同一列(EMPRESAID)用于两种不同的事物,即主键以及多对一关系。

那是行不通的(如前所述,除非insertable =“ false”)

如果可能,请在其中一个映射中为EMPRESAID使用单独的列。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM