Exception in thread "main" org.hibernate.HibernateException: More than one row with the given identifier was found: 3, for class: br.com.mgf.modelo.Pessoa
at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:69)
at org.hibernate.loader.entity.EntityLoader.loadByUniqueKey(EntityLoader.java:85)
at org.hibernate.persister.entity.AbstractEntityPersister.loadByUniqueKey(AbstractEntityPersister.java:1596)
at org.hibernate.type.EntityType.loadByUniqueKey(EntityType.java:608)
at org.hibernate.type.EntityType.resolve(EntityType.java:382)
at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:116)
at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:842)
at org.hibernate.loader.Loader.doQuery(Loader.java:717)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
at org.hibernate.loader.Loader.loadEntity(Loader.java:1851)
at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:48)
at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:42)
at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:2992)
at org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:395)
at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:375)
at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:139)
at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:98)
at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878)
at org.hibernate.impl.SessionImpl.immediateLoad(SessionImpl.java:836)
at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:66)
at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:111)
at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:140)
at br.com.mgf.modelo.Pessoa$$EnhancerByCGLIB$$901fb793.getNome(<generated>)
at br.com.mgf.dao.Dao.atualiza(Dao.java:62)
at br.com.mgf.dao.Dao.main(Dao.java:51)
Neste metodo
package br.com.mgf.dao;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import br.com.mgf.modelo.Endereco;
import br.com.mgf.modelo.Pessoa;
import br.com.mgf.modelo.Professor;
import br.com.mgf.util.HibernateUtil;
public class Dao {
/**
* @param args
*/
private static Transaction tx;
private static Session session;
public static void main(String[] args) {
// TODO Auto-generated method stub
session = new HibernateUtil().getSession();
tx = session.beginTransaction();
Professor professor = new Professor();
professor.setIdPessoa(4L);
professor = (Professor) new Dao().atualiza(professor);
session.update(professor);
tx.commit();
session.close();
}
public Pessoa atualiza(Pessoa pessoa){
Session session = new HibernateUtil().getSession();
Pessoa p = (Pessoa) session.get(Pessoa.class, pessoa.getIdPessoa()); // O erro aponta aqui
System.out.println(p.getNome() + " " + p.getEndereco().getBairro());
p.setNome("Jacui");
Endereco endereco = null;
endereco = p.getEndereco();
endereco.setBairro("Penha");
p.setEndereco(endereco);
System.out.println(p.getNome() + " " + p.getEndereco().getBairro());
return p;
}
}