Mapeando um pra um com chave composta.. hibernate

0 respostas
T

Olá pessoal to com um problema aqui de mapeamento, não estou conseguindo mapear a seguinte situação…

tenho uma classe " CadastroGeral" e outra Cliente.

a Cadastro geral tem um compositID(cod_cadastro, tipoCadastro), na classe cliente temos os campos (cod_cadastro, tipoCadastro) como chave estrangeira e composta. tenho um relacionamento um para um … é um banco de dados legado, por isso tantas compostas…

segue os sql das tabelas…

CREATE TABLE tblcdgeral ( cod_cadastro integer NOT NULL, tipo_cadastro character varying(1) NOT NULL, cod_empresa character varying(3), cod_area character varying(3) NOT NULL, nome_cadastro character varying(50), apelido character varying(30), cod_cond_pgto character varying(4), tipo_fj character varying(1), cpf_cnpj character varying(18), rg_ie character varying(14), data_cadastro timestamp without time zone, cod_situacao character varying(2), cod_ramo character varying(4), data_alteracao timestamp without time zone, uf character varying(2), cod_categoria character varying(4), cod_forma_aprovacao character varying(3), observacao character varying(100), isuframa character varying(9), cod_rota character varying(5), ordem_rota integer, distancia integer, CONSTRAINT tblcdgeral_pkey PRIMARY KEY (cod_cadastro, tipo_cadastro), CONSTRAINT fk_cdarea_cdgeral FOREIGN KEY (cod_area) REFERENCES tblcdarea (cod_area) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT fk_cdcategoria_cdgeral FOREIGN KEY (cod_categoria) REFERENCES tblcdcategoria (cod_categoria) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT fk_cdcondicaopgto_cdgeral FOREIGN KEY (cod_cond_pgto) REFERENCES tblcdcondicaopgto (cod_cond_pgto) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT fk_cdestado_cdgeral FOREIGN KEY (uf) REFERENCES tblcdestado (uf) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT fk_cdformaaprovacao_cdgeral FOREIGN KEY (cod_forma_aprovacao) REFERENCES tblcdformaaprovacao (cod_forma_aprovacao) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT fk_cdramo_cdgeral FOREIGN KEY (cod_ramo) REFERENCES tblcdramo (cod_ramo) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT fk_cdrota_cdgeral FOREIGN KEY (cod_rota) REFERENCES tblcdrota (cod_rota) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT fk_cdsituacao_cdgeral FOREIGN KEY (cod_situacao) REFERENCES tblcdsituacao (cod_situacao) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT fk_cmempresa_cdgeral FOREIGN KEY (cod_empresa) REFERENCES tblcmempresa (cod_empresa) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT fk_cmtipocadastro_cdgeral FOREIGN KEY (tipo_cadastro) REFERENCES tblcmtipocadastro (tipo_cadastro) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION ) WITHOUT OIDS; ALTER TABLE tblcdgeral OWNER TO postgres; GRANT ALL ON TABLE tblcdgeral TO postgres; GRANT ALL ON TABLE tblcdgeral TO public;

CREATE TABLE tblcdcliente
(
  cod_cadastro integer NOT NULL,
  tipo_cadastro character varying(1) NOT NULL,
  cod_lista integer,
  perc_desconto numeric(5,2),
  limite_credito numeric(15,2),
  cod_vendedor integer,
  tipo_vendedor character varying(1),
  cod_banco_caixa integer,
  cod_forma_cob integer,
  data_abertura_firma timestamp without time zone,
  data_alt_contrato timestamp without time zone,
  qtde_funcionario integer,
  faturamento_mes numeric(15,2),
  capital_social_integ numeric(15,2),
  imovel_proprio character varying(1),
  cod_grupo_empresa integer,
  cod_analise_credito integer,
  prazo_medio_max integer,
  prazo_atraso_max integer,
  data_renova_credito timestamp without time zone,
  cod_operador integer,
  tipo_cadastro_op character varying(1),
  hora_ligacao character varying(6),
  data_ult_agenda timestamp without time zone,
  info_dia character varying(7),
  periodicidade character varying(1),
  semana character varying(1),
  cod_transportadora1 integer,
  tipo_cadastro_transp1 character varying(1),
  cod_transportadora2 integer,
  tipo_cadastro_transp2 character varying(1),
  CONSTRAINT tblcdcliente_pkey PRIMARY KEY (cod_cadastro, tipo_cadastro),
  CONSTRAINT fk_cdanalisecredito_cdcliente FOREIGN KEY (cod_analise_credito)
      REFERENCES tblcdanalisecredito (cod_analise_credito) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT fk_cdgeral_cdclienteop FOREIGN KEY (cod_operador, tipo_cadastro_op)
      REFERENCES tblcdgeral (cod_cadastro, tipo_cadastro) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT fk_cdgeralt1_cdcliente FOREIGN KEY (cod_transportadora1, tipo_cadastro_transp1)
      REFERENCES tblcdgeral (cod_cadastro, tipo_cadastro) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT fk_cdgeralt2_cdcliente FOREIGN KEY (cod_transportadora2, tipo_cadastro_transp2)
      REFERENCES tblcdgeral (cod_cadastro, tipo_cadastro) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT fk_cdgrupoempresa_cdcliente FOREIGN KEY (cod_grupo_empresa)
      REFERENCES tblcdgrupoempresa (cod_grupo_empresa) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT fk_tblcbbancocaixa_tblcdcliente FOREIGN KEY (cod_banco_caixa)
      REFERENCES tblcbbancocaixa (cod_banco_caixa) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT fk_tblcbformacob_tblcdcliente FOREIGN KEY (cod_forma_cob)
      REFERENCES tblcbformacob (cod_forma_cob) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT fk_tblcdgeral_tblcdcliente FOREIGN KEY (cod_cadastro, tipo_cadastro)
      REFERENCES tblcdgeral (cod_cadastro, tipo_cadastro) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT fk_tblcdvendedor_tblcdcliente FOREIGN KEY (cod_vendedor, tipo_vendedor)
      REFERENCES tblcdgeral (cod_cadastro, tipo_cadastro) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT fk_tblcelistapreco_tblcdcliente FOREIGN KEY (cod_lista)
      REFERENCES tblcelistapreco (cod_lista) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION
) 
WITHOUT OIDS;
ALTER TABLE tblcdcliente OWNER TO postgres;
GRANT ALL ON TABLE tblcdcliente TO postgres;
GRANT ALL ON TABLE tblcdcliente TO public;

e os HBM…

<hibernate-mapping package="com.atual.modelo.cadastro.cadastrogeral">
	<class name="CadastroGeral" table="tblCDGeral" lazy="true">
		<composite-id
			class="com.atual.modelo.cadastro.cadastrogeral.CadastroGeralPk" name="idComposto">
			<key-property column="Cod_cadastro" name="codCadastro"
				type="integer" />
			<key-many-to-one
				class="com.atual.modelo.customizacao.tipocadastro.TipoCadastro"
				column="Tipo_cadastro" foreign-key="FK_CMTipoCadastro_CDGeral" lazy="false"
				name="tipoCadastro" />
		</composite-id>

		<many-to-one class="com.atual.modelo.customizacao.empresa.Empresa"
			column="Cod_empresa" foreign-key="FK_CMEmpresa_CDGeral" lazy="false"
			name="codEmpresa" not-null="false" />

		
		<one-to-one name="cliente" ></one-to-one>

		<many-to-one class="com.atual.modelo.cadastro.area.Area"
			column="Cod_area" foreign-key="FK_CDArea_CDGeral" lazy="false" name="codArea"
			not-null="false" />
		<property column="Nome_cadastro" generated="never" lazy="false"
			length="50" name="nomeCadastro" type="string" />
		<property column="Apelido" generated="never" lazy="false"
			length="30" name="apelido" type="string" />
		<many-to-one class="com.atual.modelo.cadastro.condpgto.CondPgto"
			column="Cod_cond_pgto" foreign-key="FK_CDCondicaoPgto_CDGeral" lazy="false"
			name="codCondPgto" not-null="false" />
		<property column="Tipo_FJ" generated="never" lazy="false"
			length="1" name="tipoFj" type="string" />
		<property column="Cpf_Cnpj" generated="never" lazy="false"
			length="18" name="cpfCnpj" type="string" />
		<property column="RG_IE" generated="never" lazy="false"
			length="14" name="rgIe" type="string" />
		<property column="Data_cadastro" generated="never" lazy="false"
			length="23" name="dataCadastro" type="timestamp" />
		<many-to-one class="com.atual.modelo.cadastro.situacao.Situacao"
			column="Cod_situacao" foreign-key="FK_CDSituacao_CDGeral" lazy="false"
			name="codSituacao" not-null="false" />
		<many-to-one class="com.atual.modelo.cadastro.ramo.Ramo"
			column="Cod_ramo" foreign-key="FK_CDRamo_CDGeral" lazy="false" name="codRamo"
			not-null="false" />
		<property column="Data_alteracao" generated="never" lazy="false"
			length="23" name="dataAlteracao" type="timestamp" />
		<many-to-one class="com.atual.modelo.cadastro.estado.Estado"
			column="Uf" foreign-key="FK_CDEstado_CDGeral" lazy="false" name="uf"
			not-null="false" />
		<many-to-one class="com.atual.modelo.cadastro.categoria.Categoria"
			column="Cod_categoria" foreign-key="FK_CDCategoria_CDGeral" lazy="false"
			name="codCategoria" not-null="false" />
		<many-to-one class="com.atual.modelo.cadastro.formaaprovacao.FormaAprovacao"
			column="Cod_forma_aprovacao" foreign-key="FK_CDFormaAprovacao_CDGeral"
			lazy="false" name="codFormaAprovacao" not-null="false" />
		<property column="Observacao" generated="never" lazy="false"
			length="100" name="observacao" type="string" />
		<property column="Isuframa" generated="never" lazy="false"
			length="9" name="isuframa" type="string" />
		<many-to-one class="com.atual.modelo.cadastro.rota.Rota"
			column="Cod_rota" foreign-key="FK_CDRota_CDGeral" lazy="false" name="codRota"
			not-null="false" />
		<property column="Ordem_rota" generated="never" lazy="false"
			length="10" name="ordemRota" type="integer" />
		<property column="Distancia" generated="never" lazy="false"
			length="10" name="distancia" type="integer" />

		<bag name="listaEnderecos" table="tblCDEndereco" inverse="true"
			fetch="select" cascade="all-delete-orphan" lazy="false" order-by="Tipo_endereco">
			<key update="false" foreign-key="fk_tblcdgeral_tblcdendereco">
				<column name="Cod_cadastro"></column>
				<column name="Tipo_cadastro"></column>
			</key>
			<one-to-many class="Endereco" />
		</bag>




	</class>
<hibernate-mapping package="com.atual.modelo.cadastro.cadastrogeral">
	<class name="Cliente" table="tblCDCliente">
		<!--
			<composite-id name="idComposto" class="ClientePk"> <key-many-to-one
			name="cadGeral"
			class="com.atual.modelo.cadastro.cadastrogeral.CadastroGeral"
			foreign-key="FK_tblCDGeral_tblCDCliente" lazy="false"> <column
			name="Cod_cadastro"></column> <column name="Tipo_cadastro"></column>
			</key-many-to-one> </composite-id>
		-->
		<id>
			<generator class="foreign" >
				<param name="Cod_cadastro"></param>
				<param name="Tipo_cadastro"></param>
			</generator>
		</id>

		<many-to-one name="codLista" column="Cod_lista"
			class="com.atual.modelo.estoque.listapreco.ListaPreco" not-null="false"
			lazy="false" foreign-key="FK_CEListaPreco_CDCliente">
		</many-to-one>
		<property name="percDesconto" type="big_decimal" not-null="false"
			precision="5" scale="2">
			<column name="Perc_desconto" sql-type="decimal(5,2)"></column>
		</property>
		<property name="limiteCredito" type="big_decimal" not-null="false"
			precision="15" scale="2">
			<column name="Limite_credito" sql-type="decimal(15,2)"></column>
		</property>
		<many-to-one name="codVendedor"
			class="com.atual.modelo.cadastro.cadastrogeral.CadastroGeral"
			foreign-key="FK_tblCDVendedor_tblCDCliente" not-null="false">
			<column name="Cod_vendedor"></column>
			<column name="Tipo_vendedor"></column>
		</many-to-one>
		<many-to-one name="codBancoCaixa"
			class="com.atual.modelo.financeiro.bancocaixa.BancoCaixa"
			foreign-key="FK_CBBancoCaixa_CDCliente" column="Cod_banco_caixa"
			not-null="false" lazy="false">
		</many-to-one>
		<many-to-one name="codFormaCob"
			class="com.atual.modelo.financeiro.formacob.FormaCob" foreign-key="FK_tblCBFormaCob_tblCDCliente"
			column="Cod_forma_cob" not-null="false" lazy="false">
		</many-to-one>
		<property name="dataAberturaFirma" column="Data_abertura_firma"
			type="com.atual.datamodel.util.tipos.DataFlex" not-null="false" />
		<property name="dataAltContrato" column="Data_alt_contrato"
			type="com.atual.datamodel.util.tipos.DataFlex" not-null="false" />
		<property name="qtdeFuncionario" column="Qtde_funcionario"
			type="integer" not-null="false" />
		<property name="faturamentoMes" type="big_decimal" not-null="false"
			precision="15" scale="2">
			<column name="Faturamento_mes" sql-type="decimal(15,2)"></column>
		</property>
		<property name="capitalSocialInteg" type="big_decimal"
			not-null="false" precision="15" scale="2">
			<column name="Capital_social_integ" sql-type="decimal(15,2)"></column>
		</property>
		<property name="imovelProprio" column="Imovel_proprio" type="string"
			length="1" not-null="false" />
		<many-to-one name="codGrupoEmpresa"
			class="com.atual.modelo.cadastro.grupoempresa.GrupoEmpresa"
			foreign-key="FK_CDGrupoEmpresa_CDCliente" column="Cod_grupo_empresa"
			not-null="false" lazy="false">
		</many-to-one>
		<many-to-one name="codAnaliseCredito"
			class="com.atual.modelo.cadastro.analisecredito.AnaliseCredito"
			foreign-key="FK_CDAnaliseCredito_CDCliente" column="Cod_analise_credito"
			not-null="false" lazy="false">
		</many-to-one>
		<property name="prazoMedioMax" column="Prazo_medio_max" type="integer"
			not-null="false" />
		<property name="atrasoMax" column="Prazo_atraso_max" type="integer"
			not-null="false" />
		<property name="dataRenovacaoCredito" column="data_renova_credito"
			type="com.atual.datamodel.util.tipos.DataFlex" not-null="false" />
		<many-to-one name="codTransportadora1"
			class="com.atual.modelo.cadastro.cadastrogeral.CadastroGeral"
			foreign-key="FK_CDGeralT1_CDCliente" not-null="false">
			<column name="Cod_transportadora1"></column>
			<column name="Tipo_cadastro_transp1"></column>
		</many-to-one>
		<many-to-one name="codTransportadora2"
			class="com.atual.modelo.cadastro.cadastrogeral.CadastroGeral"
			foreign-key="FK_CDGeralT2_CDCliente" not-null="false">
			<column name="Cod_transportadora2"></column>
			<column name="Tipo_cadastro_transp2"></column>
		</many-to-one>
	</class>

gostaria de maperar 1 CadastroGeral para 1 Cliente… não tenho idéia de como mapear…

Criado 5 de abril de 2010
Respostas 0
Participantes 1