HIBERNATE - Repeated column in mapping for collection

0 respostas
R

Opa pessoal…

Estou tentando fazer um mapeamento many to many entre duas tabelas que são ligadas por uma terceira tabela de ligação.
Eu estou gerando os hbm.xml utilizando o Hibernate Tools para o eclipse, mais ele está gerando o mapeamento errado. Fazendo algumas alterações nos mapeamentos gerados pelo Tools, eu cheguei aos seguintes:

<hibernate-mapping> <class name="br.com.dsystems.ds001.models.FaturaDuplicata" table="fatura_duplicata" schema="public"> <composite-id name="id" class="br.com.dsystems.ds001.models.FaturaDuplicataId"> <key-property name="codOrgao" type="string"> <column name="cod_orgao" length="12" /> </key-property> <key-property name="numAnoFatura" type="short"> <column name="num_ano_fatura" precision="4" scale="0" /> </key-property> <key-property name="numFatura" type="int"> <column name="num_fatura" precision="7" scale="0" /> </key-property> <key-property name="numDuplic" type="java.lang.Integer"> <column name="num_duplic" precision="7" scale="0" /> </key-property> </composite-id> <many-to-one name="fatura" class="br.com.dsystems.ds001.models.Fatura" update="false" insert="false" fetch="select"> <column name="cod_orgao" length="12" not-null="true" /> <column name="num_ano_fatura" precision="4" scale="0" not-null="true" /> <column name="num_fatura" precision="7" scale="0" not-null="true" /> </many-to-one> <property name="datVenctoDuplic" type="timestamp"> <column name="dat_vencto_duplic" length="8" /> </property> <property name="valDuplic" type="big_decimal"> <column name="val_duplic" precision="15" /> </property> <property name="datHoraEmissa" type="timestamp"> <column name="dat_hora_emissa" length="8" /> </property> <set name="tituloRecs" inverse="true" table="rel_fatura_dup_titulo_rec"> <key> <column name="cod_orgao" length="12" not-null="true" /> <column name="num_ano_fatura" precision="4" scale="0" not-null="true" /> <column name="num_fatura" precision="7" scale="0" not-null="true" /> <column name="num_duplic" precision="7" scale="0" not-null="true" /> </key> <many-to-many entity-name="br.com.dsystems.ds001.models.TituloRec"> <column name="cod_orgao" length="12" not-null="true" /> <column name="num_ano_recebe" precision="4" scale="0" not-null="true" /> <column name="num_titulo_recebe" precision="7" scale="0" not-null="true" /> </many-to-many> </set> </class> </hibernate-mapping>

<hibernate-mapping> <class name="br.com.dsystems.ds001.models.TituloRec" table="titulo_rec" schema="public"> <composite-id name="id" class="br.com.dsystems.ds001.models.TituloRecId"> <key-property name="codOrgao" type="string"> <column name="cod_orgao" length="12" /> </key-property> <key-property name="numAnoRecebe" type="java.lang.Short"> <column name="num_ano_recebe" precision="4" scale="0" /> </key-property> <key-property name="numTituloRecebe" type="java.lang.Integer"> <column name="num_titulo_recebe" precision="7" scale="0" /> </key-property> </composite-id> <many-to-one name="tipoTitulo" class="br.com.dsystems.ds001.models.TipoTitulo" fetch="select"> <column name="cod_tipo_titulo" precision="7" scale="0" not-null="true" /> </many-to-one> <property name="codClient" type="java.lang.Integer"> <column name="cod_client" precision="7" scale="0" /> </property> <property name="desNumeroOrigin" type="string"> <column name="des_numero_origin" length="15" /> </property> <property name="datEmissa" type="timestamp"> <column name="dat_emissa" length="8" not-null="true" /> </property> <property name="datVencim" type="timestamp"> <column name="dat_vencim" length="8" not-null="true" /> </property> <property name="valTitulo" type="big_decimal"> <column name="val_titulo" precision="15" not-null="true" /> </property> <property name="valIrrf" type="big_decimal"> <column name="val_irrf" precision="15" /> </property> <property name="numCodigoIrrf" type="java.lang.Integer"> <column name="num_codigo_irrf" precision="7" scale="0" /> </property> <property name="valLiquidRecebe" type="big_decimal"> <column name="val_liquid_recebe" precision="15" not-null="true" /> </property> <property name="datInclusTitulo" type="timestamp"> <column name="dat_inclus_titulo" length="8" not-null="true" /> </property> <property name="codUsuariInclus" type="string"> <column name="cod_usuari_inclus" length="10" not-null="true" /> </property> <property name="ideInclusAutoma" type="string"> <column name="ide_inclus_automa" length="1" not-null="true" /> </property> <property name="datBaixa" type="timestamp"> <column name="dat_baixa" length="8" /> </property> <property name="desMotivoBaixa" type="string"> <column name="des_motivo_baixa" length="30" /> </property> <property name="ideTituloAberto" type="string"> <column name="ide_titulo_aberto" length="1" not-null="true" /> </property> <property name="desObserv" type="string"> <column name="des_observ" length="60" /> </property> <property name="sigMoedaEstran" type="string"> <column name="sig_moeda_estran" length="6" /> </property> <property name="valRefereMoedaEstran" type="big_decimal"> <column name="val_refere_moeda_estran" precision="15" /> </property> <set name="faturaDuplicatas" inverse="true" table="rel_fatura_dup_titulo_rec"> <key> <column name="cod_orgao" length="12" not-null="true" /> <column name="num_ano_recebe" precision="4" scale="0" not-null="true" /> <column name="num_titulo_recebe" precision="7" scale="0" not-null="true" /> </key> <many-to-many entity-name="br.com.dsystems.ds001.models.FaturaDuplicata"> <column name="cod_orgao" length="12" not-null="true" /> <column name="num_ano_fatura" precision="4" scale="0" not-null="true" /> <column name="num_fatura" precision="7" scale="0" not-null="true" /> <column name="num_duplic" precision="7" scale="0" not-null="true" /> </many-to-many> </set> <set name="tituloRecParcelas" inverse="true"> <key> <column name="cod_orgao" length="12" not-null="true" /> <column name="num_ano_recebe" precision="4" scale="0" not-null="true" /> <column name="num_titulo_recebe" precision="7" scale="0" not-null="true" /> </key> <one-to-many class="br.com.dsystems.ds001.models.TituloRecParcela" /> </set> </class> </hibernate-mapping>

Com estes mapeamentos, quando eu tento realizar o deploy da minha app, é lançado o seguinte erro…

org.hibernate.MappingException: Repeated column in mapping for collection: br.com.dsystems.ds001.models.TituloRec.faturaDuplicatas column: cod_orgao

Isto se dá pois estou referenciando a coluna ‘cod_orgao’ na KEY e no MANY-TO-MANY de SET (faturaDuplicatas)…

Alguem ja passou por isso ?
ja procurei muito atraz da resposta, mais não consegui achar nada… Só encontrei muita gente com o mesmo problema q eu…

Obrigado
Aguardo respostas.

Rodrigo Kerkhoff

Criado 12 de fevereiro de 2008
Respostas 0
Participantes 1