2017-09-20 1 views
0

Ich habe ein Problem mit Klassenzuordnung im Ruhezustand. Ich versuche mit einer Composite-ID eine Viele-zu-Eins-Beziehung herzustellen. und die AbbildungFügen Sie einen zusammengesetzten Schlüssel ein Hibernate

Wiederholte Spalte in Zuordnung für Entität zurückgibt: br.com.is.isenterprise.cre.model.ClienteRegraIcmsMap Säule: EMPRESAID (mit Insert sollte = "false" update kartiert werden =“ false ")

aber wenn ich die viele-zu-eins-Beziehung zu insert =" false " und update =" false ich in der Datenbank die ID regraIcmsSubistituta kann nicht einfügen gesetzt. folgt den hbm-Dateien.

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> 

Antwort

0

Sie versuchen, die gleiche Spalte (EMPRESAID) für zwei zu verwenden, verschiedene Dinge, der Primärschlüssel sowie die Viele-zu-Eins-Beziehung.

Das wird nicht funktionieren ist (außer bei einführbar = „false“, wie Sie bereits erwähnt)

Wenn es möglich ist die Verwendung einer separaten Spalte für EMPRESAID in einer der Abbildungen.

Verwandte Themen