Hibernate dúvidas

Estou fazendo um código simples usando Hibernate, eu já consigo adicionar no Banco de Dados MySql, agora quando vou tentar pesquisar no banco ele dá umas exceções, acho que tá faltando código na parte de pesquisa e remoção.

Essa primeira classe é uma classe Pessoa que só tem a id, nome e numero.

[code]import javax.persistence.*;

@Entity

public class Pessoa {

@Id
@GeneratedValue
private long id;
private String nome;
private String numero;

public Pessoa(String nome, String numero){
	this.nome = nome;
	this.numero = numero;
} 

public Pessoa(long id){
	this.id = id;
}

public long getId() {
	return id;
}

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

public String getNome() {
	return nome;
}
public void setNome(String nome) {
	this.nome = nome;
}
public String getNumero() {
	return numero;
}
public void setNumero(String numero) {
	this.numero = numero;
}

}[/code]

Minha dúvida é quanto essa classe PessoaDAO, alguém sabe se está faltando alguma coisa nela?

[code]import org.hibernate.Session;

public class PessoaDAO {

private Session session;

public PessoaDAO (Session session) {
	this.session = session;
}
public void salva (Pessoa p) {
    this.session.beginTransaction();   
    this.session.save(p);   
    this.session.getTransaction().commit();   
    this.session.flush();   
    this.session.close(); 
}
public void remove (Pessoa p) {
	this.session.delete(p);
}
public Pessoa procura (long id) {
	return (Pessoa) this.session.load(Pessoa.class, id);
}
public void atualiza (Pessoa p) {
	this.session.update(p);
}

}[/code]

douglastc assim parece que não falta nada! :S
ficará mais fácil se você colocar a execeção que é lançada!

Exception in thread "AWT-EventQueue-0" org.hibernate.HibernateException: Javassist Enhancement failed: Pessoa at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.getProxy(JavassistLazyInitializer.java:142) at org.hibernate.proxy.pojo.javassist.JavassistProxyFactory.getProxy(JavassistProxyFactory.java:72) at org.hibernate.tuple.entity.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:394) at org.hibernate.persister.entity.AbstractEntityPersister.createProxy(AbstractEntityPersister.java:3469) at org.hibernate.event.def.DefaultLoadEventListener.createProxyIfNecessary(DefaultLoadEventListener.java:298) at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:219) at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:126) at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:906) at org.hibernate.impl.SessionImpl.load(SessionImpl.java:823) at org.hibernate.impl.SessionImpl.load(SessionImpl.java:816) at PessoaDAO.procura(PessoaDAO.java:21) at Janela.CancelarActionPerformed(Janela.java:135) at Janela.access$1(Janela.java:130) at Janela$2.actionPerformed(Janela.java:47) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) Caused by: java.lang.InstantiationException: Pessoa_$$_javassist_0 at java.lang.Class.newInstance0(Unknown Source) at java.lang.Class.newInstance(Unknown Source) at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.getProxy(JavassistLazyInitializer.java:139) ... 38 more

[code]Session session = new HibernateUtil().getSession();
PessoaDAO dao = new PessoaDAO(session);;

	Pessoa p = new Pessoa(DigitaNome.getText(), DigitaNumero.getText());
	
	dao.salva(p);	
}[/code]

[code]Session session = new HibernateUtil().getSession();
PessoaDAO dao = new PessoaDAO(session);
long id = 10;

	Pessoa pessoa = dao.procura(id);[/code]

O adicionar funciona perfeito, mas na pesquisa.