4
respostas

ERRO: Could not open JPA EntityManager for transaction;

Consegui publicar a minha aplicação, porém quando tento criar o usuário admin no momento de acessar a minha URL "mágica" me retorna um erro de JPA. O que poderia ser?

    @Transactional
    @ResponseBody
    @RequestMapping("/url-magica-jifhdaiucaiudjaiosd342cdsoicks")
    public String urlMagicaLogin(){

        Usuario usuario = new Usuario();
        usuario.setCartSUS("123456");
        usuario.setNomeUsuario("Admin");
        usuario.setSenha("1123456");

        usuariodao.gravar(usuario); 

        return "Usuário Inserido com Sucesso";


    }
4 respostas

Olá Felipe,

o problema provavelmente decorre do fato de que você anotou o método de um Controller com o @Transactional, sendo que o Controller em si não deveria saber a respeito do escopo de transação dos databases. Aqui tem um link com uma discussão no stackoverflow sobre o assunto.

De qualquer forma, veja se anotando o seu UsuarioDao com o @Transactional não resolve o problema

Obrigado, mas havia testado isso e não deu certo... tirei a @Transactional do método e deixei na Classe UsuarioDAO, mas mesmo assim continua com a mesma exception

HTTP Status 500 - Request processing failed; nested exception is org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction; nested exception is javax.persistence.PersistenceException: org.hibernate.exception.JDBCConnectionException: Could not open connection

Olá Felipe,

é só isso que ele manda na sua Exception? Seria interessante ver a stacktrace inteira para ver se tem alguma informação a mais para descobrir o que aconteceu.

De qualquer forma, move o @Transactional e me manda o código do UsuarioDao e do UsuarioController para eu dar uma olhada também.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software