Estou utilizando o hibernate a algum tempo, mas até agora só tive que fazer alguns CRUDs. Só que agora, eu preciso inserir dados em algumas tabelas em cascata.
Por exemplo:
Pessoa > Pessoa Física > Endereço
Ao inserir a pessoa, eu preciso levar o id para a tabela pessoa física e inserir também a pessoa física. E no endereço eu preciso do id da pessoa e inserir também os dados do endereço.
Alguém pode me dar uma ajuda em como mapear esse relacionamento no hibernate ?
Em teoria vc já está no caminho certo. Basta criar classes e fazer o mapeamento propriamente dito. Entre Pessoa e Pessoa Física vc deve tratar herança, enquanto que em Endereco, vc apenas precisa de uma referência ao objeto Pessoa (com Pessoa mesmo e não Pessoa Física, pq uma possível Pessoa Jurídica tem endereços).
Estou tentando montar o mapeamento mas não estou conseguindo. O mapeamente da Pessoa está assim:
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping><classname="br.model.Pessoa"table="pessoas"><idname="oidPessoa"column="id_pessoa"type="int"><generatorclass="sequence"><paramname="sequence">sqc_pessoas</param></generator></id></class></hibernate-mapping>
E o Pessoa Jurídica:
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping><classname="br.model.PessoaJuridica"table="pessoas_juridicas"><idname="oidPesJuridica"column="id_pes_jurid"type="int"><generatorclass="sequence"><paramname="sequence">sqc_pessoas_juridicas</param></generator></id><propertyname="cnpj"/><propertyname="rzSocial"/><propertyname="nmFantasia"/><propertyname="inscEstadual"/><propertyname="inscMunicipal"/><propertyname="homePage"/><many-to-onename="pessoa"class="br.model.Pessoa"column="id_pessoa"/></class></hibernate-mapping>
Esse mapeamento está correto ?
Obrigado!
Anderson_Schmidt
Bom dia,
Pra ser sincero, não uso mapeamento via arquivo xml, defendo a idéia de olhar para minhas classes e conseguir analisar seus mapeamentos, assim, os coloco antes da declaração dos atributos na própria classe de modelo.