tudo bom pessoal
eu tenho o seguinte método em meu DAO genérico para o Hibernate:
public T findById(PK id) {
System.out.println(" ### BUSCANDO: " + id);
T a = (T) session.load(persistentClass, id);
if (a instanceof EstadoCivil) {
System.out.println(" ### ENCONTRADO: " + ((EstadoCivil) a).getId());
System.out.println(" ### ENCONTRADO: " + ((EstadoCivil) a).getEstadoCivil());
}
return a;
}
Detalhe: estou fazendo cast para estado civil pois estou testando somente estados civis
o que acontece eh q quando eu faco a pesquisa por id a primeira vez ocorre tudo bem… o hibernate gera a sql normalmente (exemplo… buscar pelo estadoCivil com ID 1)
mas quando eu faco de novo ele nao executa a query novamente… nao vejo gerando sql no log e oID do objeto vem trocado… vem co o ID do objeto pesquisado anteriormente
olhem o LOG onde 1 == Solteiro e 2 == casado:
viram?
busqui pelo ID 1 e ele me troxe o Solteiro mas trocou o ID para 2
oq estah acontecendo?
pessoal
puz um sysout nos metodos getId e setId do meu entity bean EstadoCivil
isso ai acontece qd acontece o evento onblur no campo de estado civil
public T findById(PK id) {
System.out.println(" ### GenericHibernateDAO.findById - Buscando " + id);
T a = (T) session.get(persistentClass, id);
if (a instanceof EstadoCivil) {
System.out.println(" ### GenericHibernateDAO.findById - Encontrado " + ((EstadoCivil) a).getId());
System.out.println(" ### GenericHibernateDAO.findById - Encontrado " + ((EstadoCivil) a).getEstadoCivil());
}
return a;
}
no meu GenericHibernateDAO quando eu chamo o findById… dentro do findById ele estah chamando o metodo EstadoCivil.getId e estah retornando 2
nao era pra ele chamar o EstadoCivil.getId e sim terminar o metodo findbyid eu acho
alguma ideia do q possa estar acontecendo?
valew