我在hibernate中面临类映射问题。 我正在尝试使用复合ID建立多对一关系。 并且映射正在返回
实体映射中的重复列: br.com.is.isenterprise.cre.model.ClienteRegraIcmsMap专栏:EMPRESAID (应使用insert =“false”update =“false”映射)
但如果我将多对一关系设置为insert =" false "
和update =" false
,则无法在数据库中插入regraIcmsSubistituta的id。
跟随hbm文件。
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>
答案 0 :(得分:0)
您尝试对两个不同的事物使用相同的列(EMPRESAID),即主键和多对一关系。
那不会起作用(除了可插入=&#34;假&#34;,如你所说)
如果可以在其中一个映射中使用单独的EMPRESAID列。