mapeando um pra um com chave composta.. hibernate
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..
view plaincopy to clipboardprint?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 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;
view plaincopy to clipboardprint?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; 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..
view plaincopy to clipboardprint?<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="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>
view plaincopy to clipboardprint?<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> <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...
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..
view plaincopy to clipboardprint?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 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;
view plaincopy to clipboardprint?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; 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..
view plaincopy to clipboardprint?<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="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>
view plaincopy to clipboardprint?<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> <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...
Wellington Carvalho
Curtidas 0
Respostas
Dyego Carmo
07/04/2010
Tentou mandar o NetBeans ler seu banco de dados e gerar as entidades para voce ?
Ele implementa este truque !
Ele implementa este truque !
GOSTEI 0
Wellington Carvalho
07/04/2010
Olá.. gerei pelo netbeans.... legal...
mas ainda num ta funcionando legal.. vou colocar o fonte aqui , ..
classe cliente
mas ainda num ta funcionando legal.. vou colocar o fonte aqui , ..
/**
*
* @author developer
*/
@Entity
@Table(name = "cadastrogeral")
@NamedQueries({
@NamedQuery(name = "Cadastrogeral.findAll", query = "SELECT c FROM Cadastrogeral c"),
@NamedQuery(name = "Cadastrogeral.findByIdcadastrogeral", query = "SELECT c FROM Cadastrogeral c WHERE c.cadastrogeralPK.idcadastrogeral = :idcadastrogeral"),
@NamedQuery(name = "Cadastrogeral.findByIdTipoCadastro", query = "SELECT c FROM Cadastrogeral c WHERE c.cadastrogeralPK.idTipoCadastro = :idTipoCadastro"),
@NamedQuery(name = "Cadastrogeral.findByDescricao", query = "SELECT c FROM Cadastrogeral c WHERE c.descricao = :descricao")})
public class Cadastrogeral implements Serializable {
private static final long serialVersionUID = 1L;
@EmbeddedId
protected CadastrogeralPK cadastrogeralPK;
@Column(name = "descricao")
private String descricao;
@OneToOne(cascade = CascadeType.ALL, mappedBy = "cadastrogeral")
private Cliente cliente;
@JoinColumn(name = "id_tipo_cadastro", referencedColumnName = "idtipocadastro", insertable = false, updatable = false)
@ManyToOne(optional = false)
private Tipocadastro tipocadastro;
@Embeddable
public class CadastrogeralPK implements Serializable {
@Basic(optional = false)
@Column(name = "idcadastrogeral")
private int idcadastrogeral;
@Basic(optional = false)
@Column(name = "id_tipo_cadastro")
private int idTipoCadastro;
classe cliente
@Entity
@Table(name = "Cliente")
@NamedQueries({
@NamedQuery(name = "Cliente.findAll", query = "SELECT c FROM Cliente c"),
@NamedQuery(name = "Cliente.findByNomeCliente", query = "SELECT c FROM Cliente c WHERE c.nomeCliente = :nomeCliente"),
@NamedQuery(name = "Cliente.findByIdCadastroGeral", query = "SELECT c FROM Cliente c WHERE c.clientePK.idCadastroGeral = :idCadastroGeral"),
@NamedQuery(name = "Cliente.findByIdTipoCadastro", query = "SELECT c FROM Cliente c WHERE c.clientePK.idTipoCadastro = :idTipoCadastro")})
public class Cliente implements Serializable {
private static final long serialVersionUID = 1L;
@EmbeddedId
protected ClientePK clientePK;
@Column(name = "nomeCliente")
private String nomeCliente;
@JoinColumns({
@JoinColumn(name = "idCadastroGeral", referencedColumnName = "idcadastrogeral", insertable = false, updatable = false),
@JoinColumn(name = "id_tipo_cadastro", referencedColumnName = "id_tipo_cadastro", insertable = false, updatable = false)})
@OneToOne(optional = false)
private Cadastrogeral cadastrogeral;
@Embeddable
public class ClientePK implements Serializable {
@Basic(optional = false)
@Column(name = "idCadastroGeral")
private int idCadastroGeral;
@Basic(optional = false)
@Column(name = "id_tipo_cadastro")
private int idTipoCadastro;
@Entity
@Table(name = "tipocadastro")
@NamedQueries({
@NamedQuery(name = "Tipocadastro.findAll", query = "SELECT t FROM Tipocadastro t"),
@NamedQuery(name = "Tipocadastro.findByIdtipocadastro", query = "SELECT t FROM Tipocadastro t WHERE t.idtipocadastro = :idtipocadastro"),
@NamedQuery(name = "Tipocadastro.findByDesctipocadastro", query = "SELECT t FROM Tipocadastro t WHERE t.desctipocadastro = :desctipocadastro")})
public class Tipocadastro implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@Column(name = "idtipocadastro")
private Integer idtipocadastro;
@Column(name = "desctipocadastro")
private String desctipocadastro;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "tipocadastro")
private Collection<Cadastrogeral> cadastrogeralCollection;
GOSTEI 0
Wellington Carvalho
07/04/2010
so que ainda não ta salvando...
to usando também uma classe que o netbeans gerou...
usando a seguinte classe pra testar o mapeamento..
da dando o Erro
SEVERE: null
javax.persistence.EntityNotFoundException: Unable to find testejpa.Cliente with id testejpa.ClientePK[idCadastroGeral=1, idTipoCadastro=1]
at org.hibernate.ejb.Ejb3Configuration$Ejb3EntityNotFoundDelegate.handleEntityNotFound(Ejb3Configuration.java:113)
at org.hibernate.proxy.AbstractLazyInitializer.checkTargetState(AbstractLazyInitializer.java:79)
at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:68)
at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:111)
at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:150)
at testejpa.Cliente$$EnhancerByCGLIB$$b2bac912.getCadastrogeral(<generated>)
at testejpa.CadastrogeralJpaController.create(CadastrogeralJpaController.java:56)
at testejpa.Main.main(Main.java:64)
CONSTRUÍDO COM SUCESSO (tempo total: 2 segundos)
c puder me dar uma dica... agradeço... t+
to usando também uma classe que o netbeans gerou...
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package testejpa;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;
import javax.persistence.EntityNotFoundException;
import java.util.ArrayList;
import testejpa.exceptions.IllegalOrphanException;
import testejpa.exceptions.NonexistentEntityException;
import testejpa.exceptions.PreexistingEntityException;
/**
*
* @author developer
*/
public class CadastrogeralJpaController {
public CadastrogeralJpaController() {
emf = Persistence.createEntityManagerFactory("TesteJpaPU");
}
private EntityManagerFactory emf = null;
public EntityManager getEntityManager() {
return emf.createEntityManager();
}
public void create(Cadastrogeral cadastrogeral) throws PreexistingEntityException, Exception {
if (cadastrogeral.getCadastrogeralPK() == null) {
cadastrogeral.setCadastrogeralPK(new CadastrogeralPK());
}
cadastrogeral.getCadastrogeralPK().setIdTipoCadastro(cadastrogeral.getTipocadastro().getIdtipocadastro());
EntityManager em = null;
try {
em = getEntityManager();
em.getTransaction().begin();
Cliente cliente = cadastrogeral.getCliente();
if (cliente != null) {
cliente = em.getReference(cliente.getClass(), cliente.getClientePK());
cadastrogeral.setCliente(cliente);
}
Tipocadastro tipocadastro = cadastrogeral.getTipocadastro();
if (tipocadastro != null) {
tipocadastro = em.getReference(tipocadastro.getClass(), tipocadastro.getIdtipocadastro());
cadastrogeral.setTipocadastro(tipocadastro);
}
em.persist(cadastrogeral);
if (cliente != null) {
Cadastrogeral oldCadastrogeralOfCliente = cliente.getCadastrogeral();
if (oldCadastrogeralOfCliente != null) {
oldCadastrogeralOfCliente.setCliente(null);
oldCadastrogeralOfCliente = em.merge(oldCadastrogeralOfCliente);
}
cliente.setCadastrogeral(cadastrogeral);
cliente = em.merge(cliente);
}
if (tipocadastro != null) {
tipocadastro.getCadastrogeralCollection().add(cadastrogeral);
tipocadastro = em.merge(tipocadastro);
}
em.getTransaction().commit();
} catch (Exception ex) {
if (findCadastrogeral(cadastrogeral.getCadastrogeralPK()) != null) {
throw new PreexistingEntityException("Cadastrogeral " + cadastrogeral + " already exists.", ex);
}
throw ex;
} finally {
if (em != null) {
em.close();
}
}
}
public void edit(Cadastrogeral cadastrogeral) throws IllegalOrphanException, NonexistentEntityException, Exception {
cadastrogeral.getCadastrogeralPK().setIdTipoCadastro(cadastrogeral.getTipocadastro().getIdtipocadastro());
EntityManager em = null;
try {
em = getEntityManager();
em.getTransaction().begin();
Cadastrogeral persistentCadastrogeral = em.find(Cadastrogeral.class, cadastrogeral.getCadastrogeralPK());
Cliente clienteOld = persistentCadastrogeral.getCliente();
Cliente clienteNew = cadastrogeral.getCliente();
Tipocadastro tipocadastroOld = persistentCadastrogeral.getTipocadastro();
Tipocadastro tipocadastroNew = cadastrogeral.getTipocadastro();
List<String> illegalOrphanMessages = null;
if (clienteOld != null && !clienteOld.equals(clienteNew)) {
if (illegalOrphanMessages == null) {
illegalOrphanMessages = new ArrayList<String>();
}
illegalOrphanMessages.add("You must retain Cliente " + clienteOld + " since its cadastrogeral field is not nullable.");
}
if (illegalOrphanMessages != null) {
throw new IllegalOrphanException(illegalOrphanMessages);
}
if (clienteNew != null) {
clienteNew = em.getReference(clienteNew.getClass(), clienteNew.getClientePK());
cadastrogeral.setCliente(clienteNew);
}
if (tipocadastroNew != null) {
tipocadastroNew = em.getReference(tipocadastroNew.getClass(), tipocadastroNew.getIdtipocadastro());
cadastrogeral.setTipocadastro(tipocadastroNew);
}
cadastrogeral = em.merge(cadastrogeral);
if (clienteNew != null && !clienteNew.equals(clienteOld)) {
Cadastrogeral oldCadastrogeralOfCliente = clienteNew.getCadastrogeral();
if (oldCadastrogeralOfCliente != null) {
oldCadastrogeralOfCliente.setCliente(null);
oldCadastrogeralOfCliente = em.merge(oldCadastrogeralOfCliente);
}
clienteNew.setCadastrogeral(cadastrogeral);
clienteNew = em.merge(clienteNew);
}
if (tipocadastroOld != null && !tipocadastroOld.equals(tipocadastroNew)) {
tipocadastroOld.getCadastrogeralCollection().remove(cadastrogeral);
tipocadastroOld = em.merge(tipocadastroOld);
}
if (tipocadastroNew != null && !tipocadastroNew.equals(tipocadastroOld)) {
tipocadastroNew.getCadastrogeralCollection().add(cadastrogeral);
tipocadastroNew = em.merge(tipocadastroNew);
}
em.getTransaction().commit();
} catch (Exception ex) {
String msg = ex.getLocalizedMessage();
if (msg == null || msg.length() == 0) {
CadastrogeralPK id = cadastrogeral.getCadastrogeralPK();
if (findCadastrogeral(id) == null) {
throw new NonexistentEntityException("The cadastrogeral with id " + id + " no longer exists.");
}
}
throw ex;
} finally {
if (em != null) {
em.close();
}
}
}
public void destroy(CadastrogeralPK id) throws IllegalOrphanException, NonexistentEntityException {
EntityManager em = null;
try {
em = getEntityManager();
em.getTransaction().begin();
Cadastrogeral cadastrogeral;
try {
cadastrogeral = em.getReference(Cadastrogeral.class, id);
cadastrogeral.getCadastrogeralPK();
} catch (EntityNotFoundException enfe) {
throw new NonexistentEntityException("The cadastrogeral with id " + id + " no longer exists.", enfe);
}
List<String> illegalOrphanMessages = null;
Cliente clienteOrphanCheck = cadastrogeral.getCliente();
if (clienteOrphanCheck != null) {
if (illegalOrphanMessages == null) {
illegalOrphanMessages = new ArrayList<String>();
}
illegalOrphanMessages.add("This Cadastrogeral (" + cadastrogeral + ") cannot be destroyed since the Cliente " + clienteOrphanCheck + " in its cliente field has a non-nullable cadastrogeral field.");
}
if (illegalOrphanMessages != null) {
throw new IllegalOrphanException(illegalOrphanMessages);
}
Tipocadastro tipocadastro = cadastrogeral.getTipocadastro();
if (tipocadastro != null) {
tipocadastro.getCadastrogeralCollection().remove(cadastrogeral);
tipocadastro = em.merge(tipocadastro);
}
em.remove(cadastrogeral);
em.getTransaction().commit();
} finally {
if (em != null) {
em.close();
}
}
}
public List<Cadastrogeral> findCadastrogeralEntities() {
return findCadastrogeralEntities(true, -1, -1);
}
public List<Cadastrogeral> findCadastrogeralEntities(int maxResults, int firstResult) {
return findCadastrogeralEntities(false, maxResults, firstResult);
}
private List<Cadastrogeral> findCadastrogeralEntities(boolean all, int maxResults, int firstResult) {
EntityManager em = getEntityManager();
try {
Query q = em.createQuery("select object(o) from Cadastrogeral as o");
if (!all) {
q.setMaxResults(maxResults);
q.setFirstResult(firstResult);
}
return q.getResultList();
} finally {
em.close();
}
}
public Cadastrogeral findCadastrogeral(CadastrogeralPK id) {
EntityManager em = getEntityManager();
try {
return em.find(Cadastrogeral.class, id);
} finally {
em.close();
}
}
public int getCadastrogeralCount() {
EntityManager em = getEntityManager();
try {
Query q = em.createQuery("select count(o) from Cadastrogeral as o");
return ((Long) q.getSingleResult()).intValue();
} finally {
em.close();
}
}
}
usando a seguinte classe pra testar o mapeamento..
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package testejpa;
import java.util.logging.Level;
import java.util.logging.Logger;
import testejpa.exceptions.IllegalOrphanException;
import testejpa.exceptions.PreexistingEntityException;
/**
*
* @author developer
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
TipocadastroJpaController ctrlTipo = new TipocadastroJpaController();
Tipocadastro tipo = new Tipocadastro();
tipo.setIdtipocadastro(1);
tipo.setDesctipocadastro("Clientes");
/*
try {
ctrlTipo.create(tipo);
} catch (PreexistingEntityException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} catch (Exception ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}*/
CadastrogeralJpaController controler = new CadastrogeralJpaController();
Cadastrogeral cad = new Cadastrogeral();
CadastrogeralPK pk = new CadastrogeralPK();
pk.setIdTipoCadastro(1);
pk.setIdcadastrogeral(1);
cad.setCadastrogeralPK(pk);
cad.setDescricao("primeiro cadastro geral");
Cliente cli = new Cliente();
cli.setCadastrogeral(cad);
cli.setNomeCliente("primeiro cliente");
ClientePK pkCli = new ClientePK(1, 1);
cli.setClientePK(pkCli);
cad.setCliente(cli);
cad.setTipocadastro(tipo);
try {
controler.create(cad);
} catch (Exception ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
/* ClienteJpaController ctrlCliente = new ClienteJpaController();
try {
ctrlCliente.create(cli);
} catch (IllegalOrphanException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} catch (PreexistingEntityException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} catch (Exception ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}*/
}
}
da dando o Erro
SEVERE: null
javax.persistence.EntityNotFoundException: Unable to find testejpa.Cliente with id testejpa.ClientePK[idCadastroGeral=1, idTipoCadastro=1]
at org.hibernate.ejb.Ejb3Configuration$Ejb3EntityNotFoundDelegate.handleEntityNotFound(Ejb3Configuration.java:113)
at org.hibernate.proxy.AbstractLazyInitializer.checkTargetState(AbstractLazyInitializer.java:79)
at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:68)
at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:111)
at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:150)
at testejpa.Cliente$$EnhancerByCGLIB$$b2bac912.getCadastrogeral(<generated>)
at testejpa.CadastrogeralJpaController.create(CadastrogeralJpaController.java:56)
at testejpa.Main.main(Main.java:64)
CONSTRUÍDO COM SUCESSO (tempo total: 2 segundos)
c puder me dar uma dica... agradeço... t+
GOSTEI 0
Dyego Carmo
07/04/2010
A entidade de ID idCadastroGeral=1 não existe , ela deve existir para que o insert funcione.
GOSTEI 0
Carlos Mazzi
07/04/2010
Oi , resolveu? , se sim entao feche post, vlw? Abracos++
GOSTEI 0
Dyego Carmo
07/04/2010
Resolvido ?
GOSTEI 0
Wellington Carvalho
07/04/2010
na verdadenão foi resolvido não.. rsrsr
mas podemosencerrar o post.
mas podemosencerrar o post.
GOSTEI 0
Dyego Carmo
07/04/2010
Tem certeza ?
----------------------------------------------------------------
Dúvidas em Programação ? - http://www.forHelp.US
Controverso Eu ? - http://www.go-java.com
----------------------------------------------------------------
Dúvidas em Programação ? - http://www.forHelp.US
Controverso Eu ? - http://www.go-java.com
GOSTEI 0