Olá pessoal!
Estou com um probleminha aqui !
Em minha aplicação quando faço login com uma conta normal ele faz o select verificando e me retorna o objeto se ele existir no banco, depois se eu fizer logout desta conta entrar com uma de administrador e bloquear o outro usuário que eu havia entrado ou fazer alguma alteração nele, quando faço login nele novamente ele me retorna o mesmo objeto que fiz o login pela primeira vez não mostrando as alterações, as alterações são visíveis no banco e só fica normal na aplicação quando reinicio o Tomcat e o Hibernate levanta de novo.
aqui está o código de busca do login:
[code]public class LoginDAO extends AbstractDAO {
EntityManager em = getEMF().createEntityManager();
@SuppressWarnings("unchecked")
public UsuarioDTO getLogin(String email, String senha) {
em.getTransaction().begin();
ArrayList<UsuarioDTO> usuarios = new ArrayList<UsuarioDTO>(em.createQuery("from UsuarioDTO u where u.email = '" + email + "' and u.senha = md5('" + senha + "')").getResultList());
em.getTransaction().commit();
UsuarioDTO usuario = new UsuarioDTO();
if (usuarios.size() == 1) {
Long id = usuarios.get(0).getId();
usuario = em.find(UsuarioDTO.class, id);
usuario.setLoggedIn(true);
}
return usuario;
}
}
[/code]
Vocês sabem o que poderia estar acontecendo ou alguma maneira de eu fazer com que ele pegue novamente o objeto com as alterações sem ter que reiniciar o Tomcat?
Obrigado!
Leonardo Terrão.