Java c/ Hibernate - Não Grava

Criei uma tabelam Pessoa e outra Endereço, efetuei os mapeamentos devidos - pelo menos no meu entendimento. Esta gravando corretamente na tabela endereço, porém, na Tabela Pessoa o campo “id_endereco” não esta gravando, e eu não consegui ententer o porque disso!!!

esse é o mapeamento de Pessoa.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-mapping
        PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
    <class name="Pessoa">
        <!-- Identificador da classe -->         
        <id name="id">
            <generator class="native"></generator>
        </id>     
        <!-- Propriedades da classe -->
        <property name="nomeP"/>
        <property name="telefone"/>
        <property name="email"/>    
        <!-- Relacionamento da classe -->
        <many-to-one name="endereco" column="id_endereco" class="Endereco" cascade="save-update"/>            
    </class>    
</hibernate-mapping>

Endereco.hbm.xml

[code]<?xml version="1.0" encoding="UTF-8"?>

[/code]

Pessoa.java

[code]public class Pessoa
{
private Integer id;
private String nomeP;
private String telefone;
private String email;
private Endereco endereco;

public Pessoa() 
{
}

public Integer getId() 
{
    return id;
}

public void setId(Integer id) 
{
    this.id = id;
}

public String getNomeP() 
{
    return nomeP;
}

public void setNomeP(String nomeP) 
{
    this.nomeP = nomeP;
}

public String getEmail() 
{
    return email;
}

public void setEmail(String email) 
{
    this.email = email;
}

public String getTelefone() 
{
    return telefone;
}

public void setTelefone(String telefone) 
{
    this.telefone = telefone;
}

public Endereco getEndereco() 
{
    return endereco;
}

public void setEndereco(Endereco val) 
{
    this.endereco = val;
}   

}
[/code]

Gostaria que alguém me ajudasse!!

Posta o código que está tentando gravar…

[code]
public static void main(String[] args)
{
Session sessao;
sessao = HibernateUtility.getSession(); //Abrindo uma sessão
Transaction transaction =
sessao.beginTransaction(); //Iniciando uma transação

    Pessoa pessoa = new Pessoa();
    Endereco endereco = new Endereco();
    String p1, p2, p3, p4, p5, p6, p7, p8, p9, p10;
    Integer p10i;
    p1=JOptionPane.showInputDialog("Nome: ");
    System.out.println(p1);
    p2=JOptionPane.showInputDialog("Endereço - Rua: ");
    System.out.println(p2);
    p10=JOptionPane.showInputDialog("Número: ");
    System.out.println(p10); 
    p10i=Integer.parseInt(p10);
    p3=JOptionPane.showInputDialog("Bairro: ");
    System.out.println(p3);
    p5=JOptionPane.showInputDialog("Complemento: ");
    System.out.println(p5);
    p7=JOptionPane.showInputDialog("Cidade: ");
    System.out.println(p7);               
    p4=JOptionPane.showInputDialog("Estado: ");
    System.out.println(p4);                        
    p6=JOptionPane.showInputDialog("CEP: ");
    System.out.println(p6);                                       
    p8=JOptionPane.showInputDialog("Telefone: ");
    System.out.println(p8);
    p9=JOptionPane.showInputDialog("email: ");
    System.out.println(p9);
            
    endereco.setRua(p2);
    endereco.setNumero(p10i);
    endereco.setBairro(p3);        
    endereco.setComplemento(p5);
    endereco.setCidade(p7);
    endereco.setEstado(p4);
    endereco.setCep(p6);        
    sessao.save(endereco);
    
    pessoa.setNomeP(p1); 
    pessoa.setTelefone(p8);
    pessoa.setEmail(p9);
    endereco.getPessoas().add(pessoa);
    sessao.save(pessoa);
    
    transaction.commit(); //Finalizando a transação
    sessao.close();       //Fechando a sessão
    endereco.ver();
}[/code]

Simplesmente não grava, ou está dando alguma exceção ?
Tenta colocar um try/catch pra ver, pode ser alguma exceção no meio do caminho.

Simplesmente não grava, ou seja, apenas o campo “id_endereco” na tabela Pessoa não grava, os demais campos estão gravando…
vou tentar o try…

Substitua o trecho:

pessoa.setNomeP(p1); 
pessoa.setTelefone(p8);
pessoa.setEmail(p9);
endereco.getPessoas().add(pessoa);
sessao.save(pessoa);

por

pessoa.setNomeP(p1); 
pessoa.setTelefone(p8);
pessoa.setEmail(p9);
pessoa.setEndereco(endereco);   // Essa linha
sessao.save(pessoa);

Meu amigo deu certo… era isso mesmo… obrigado!!!