[Resolvido] Hibernate Gravar Foreign Key

2 respostas
PatricMaffi

Boa tarde Pessoal!!

to quebrando a cabeça com relacionamento many-to-one
pois não esta gravando foreign key
ele grava os dados gera a primary key mais não grava a chave estrangeira

bom acho que melhor que explicações o código né
entao tae e espero que possam me ajudar

Classes

Cliente.Java
public class Cliente extends Entidade
{
    public int cod;
    public String nome;
    public String fone;
    public String email;
    private List<Endereco> enderecos;

...gets e sets...
Endereco.Java
public class Endereco extends Entidade
{
    private int id;
    private Integer usr_end_id;
    private String endereco;
    private Cliente cliente;

...gets e sets...

HBM.XML

Cliente.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
   <class name="HN.Cliente" table="tb_usuario">
       <id name="cod"  column="cod"  type="java.lang.Integer">
            <generator class="native">
                <param name="sequence">seq_usuario</param>  
            </generator>
        </id>
        <property name="nome" column="NOME" type="string"/>
        <property name="fone" column="FONE" type="string"/>
        <property name="email" column="EMAIL" type="string"/>
        <list name="enderecos" inverse="true" cascade="all">  
            <key column="usr_ender_id" not-null="true"/>  
            <list-index column="tb_endereco"/>  
            <one-to-many class="HN.Endereco"/>
        </list>
    </class>
</hibernate-mapping>
Endereco.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping default-cascade="none" default-access="property" default-lazy="true" auto-import="true">  
   <class name="HN.Endereco" table="tb_endereco" mutable="true" polymorphism="implicit">
       <id name="id"  column="id_end"  type="java.lang.Integer">
            <generator class="native">
                <param name="sequence">seq_ender</param>  
            </generator>
       </id>
       <property name="endereco" column="endereco" type="string"/>
       <many-to-one name="cliente" class="HN.Cliente" column="usr_ender_id">
       </many-to-one>
    </class>
</hibernate-mapping>

tae gente
soh a foreign key q naum esta sendo inserida no banco
Alguem tem ideia do que pode ser??

=D

2 Respostas

PatricMaffi

Postar aki meu banco pra ver se fica mais claro

tb_endereco
—PK----------FK--------------------------------


id_end | usr_ender_id | endereco |


tb_usuario
PK


cod | nome | fone | email |


PatricMaffi

AEEE GALERA CONSEGUI RESOLVER

jogando a Classe cliente dentro da classe endereço e vice e versa
vou postar exemplo para quem estiver com o mesmo problema

HibernateDAO cDAO = new HibernateDAO(); List<Endereco> enderecos = new ArrayList(); for(int i = 1; i < 3; i++) { Endereco endereco = new Endereco(); endereco.setEndereco("Endereco " + i); endereco.setCliente(cliente); enderecos.add(endereco); } cliente.setEnderecos(enderecos); cDAO.inserir(cliente);

Criado 18 de fevereiro de 2008
Ultima resposta 19 de fev. de 2008
Respostas 2
Participantes 1