Iniciando hibernate

Ola pessoal do GUJ
ja tenho um bom conhecimento em java e mysql, entaum peguei o tutorial aqui do site para estudar o hibernate, o que eu fiz foi abrir as classes no eclipse e estudei o XML.
bom mas na hora de compilar o programa aparece isso:

ERROR BasicPropertyAccessor:167 - IllegalArgumentException in class: Pessoa, getter method of property: id
org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling getter of Pessoa.id
	at org.hibernate.property.BasicPropertyAccessor$BasicGetter.get(BasicPropertyAccessor.java:171)
	at org.hibernate.engine.UnsavedValueFactory.getUnsavedIdentifierValue(UnsavedValueFactory.java:44)
	at org.hibernate.tuple.PropertyFactory.buildIdentifierProperty(PropertyFactory.java:44)
	at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:123)
	at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:434)
	at org.hibernate.persister.entity.JoinedSubclassEntityPersister.<init>(JoinedSubclassEntityPersister.java:91)
	at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:58)
	at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:226)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1294)
	at HibernateUtility.<clinit>(HibernateUtility.java:10)
	at Main.main(Main.java:13)
Caused by: java.lang.IllegalArgumentException: object is not an instance of declaring class
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.hibernate.property.BasicPropertyAccessor$BasicGetter.get(BasicPropertyAccessor.java:145)
	... 10 more
java.lang.NullPointerException
	at HibernateUtility.getSession(HibernateUtility.java:18)
	at Main.main(Main.java:13)
Exception in thread "main" 

maceleta,

Pelo visto parece algum problema com o metodo get da propriedade id. Coloque ai a sua classe e a xml de configuração (pessoa.xml)

Caso, você esteja começando com o Hibernate, aconselho a olhar o Hibernate Annotations

http://www.hibernate.org/hib_docs/annotations/reference/en/pdf/hibernate_annotations.pdf

fsquadro,

valew pela resposta.

bom ta ai o q vc me pediu e obrigado pela dica do PDF

o 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="increment"/>
  </id>
  
  <!-- Propriedades da classe -->

  <property name="nome"/>
  <property name="telefone"/>
  <property name="email"/>
 
  <!-- Relacionamento da classe -->

  <one-to-one 
  	name="endereco" 
  	class="Endereco"
  	cascade="save-update"/>
 
 </class>

</hibernate-mapping>

e a Classe:


public class Pessoa {

	private String nome;
	 
	private String email;
	 
	private String telefone;
	 
	private Endereco endereco;

	private Integer id;
	
	
	
	/**
	 * @return Returns the id.
	 */
	public Integer getId() {
		return id;
	}
	/**
	 * @param id The id to set.
	 */
	public void setId(Integer id) {
		this.id = id;
	}	
	
	/**
	 * @return Returns the email.
	 */
	public String getEmail() {
		return email;
	}
	/**
	 * @param email The email to set.
	 */
	public void setEmail(String email) {
		this.email = email;
	}
	/**
	 * @return Returns the endereço.
	 */
	public Endereco getEndereco() {
		return endereco;
	}
	/**
	 * @param endereço The endereço to set.
	 */
	public void setEndereco(Endereco endereco) {
		this.endereco = endereco;
	}
	/**
	 * @return Returns the nome.
	 */
	public String getNome() {
		return nome;
	}
	/**
	 * @param nome The nome to set.
	 */
	public void setNome(String nome) {
		this.nome = nome;
	}
	/**
	 * @return Returns the telefone.
	 */
	public String getTelefone() {
		return telefone;
	}
	/**
	 * @param telefone The telefone to set.
	 */
	public void setTelefone(String telefone) {
		this.telefone = telefone;
	}
}

maceleta,

Você declarou o mapeamento no hibernate.cfg.xml?

 <mapping resource="pessoa.hbm.xml"/>

Verifique isso, como você está começando, e como já tinha mencionado para você quem sabe dar uma olhada no Hibernate Annotation, eu vou colocar abaixo como ficaria o mapeamento com o Annotations. Eu não cheguei a testar, mas acredito que esteja Ok.

[EDITADO]

@Entity(name="Pessoa")
// Nome da tabela
@Table(name="tb_pessoa")
// Indica que uma sequence será criada, e define o nome dela
@SequenceGenerator(name = "seq_pessoa", sequenceName = "seq_pessoa")
 public class Pessoa {

               @Id    
               @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq_pessoa")
               @Column(name="id_pessoa", nullable=false, unique=true)
               private Integer id; 

                @Column(name="txt_nome", nullable=false, length=255)
 	private String nome;
 	 
                @Column(name="txt_email", nullable=false, length=255)
 	private String email;
 	 
                @Column(name="txt_telefone", nullable=false, length=255)
 	private String telefone;
 	
                @OneToOne(cascade = CascadeType.ALL)
                private Endereco endereco; 	

                //getters and setters
 	
}

Espero ter ajudado.