Estou persistindo meus dados dentro de um try catch, mas ele esta retornando um erro e mesmo assim persistindo os dados.
Sera que fiz alguma coisa errada?
try {
PessoaDAO dao = new PessoaDAO(session);
Transaction t = session.beginTransaction();
dao.Inserir(p);
t.commit();
}
catch (Exception e) {
out.println("Nao salvou!");
}
finally {
session.flush();
session.close();
}
Ele esta persistindo o dado no BD, mas mostrando a minha mensagem de erro, mostrando o que está dentro do catch, entendeu?
rodrigo.bossini
O que tem no seu método inserir depois da instrução execute que salva os dados?
Pode ser uma chamada close num ResultSet com valor null, por exemplo.
J
JeffersonJCosta
Meu metodo inserir esta assim:
public void Inserir(Pessoa p) {
logger.info("Salvando " + p + " sessao " + sessao);
this.sessao.save(p);
}
rodrigo.bossini
JeffersonJCosta:
Meu metodo inserir esta assim:
public void Inserir(Pessoa p) {
logger.info("Salvando " + p + " sessao " + sessao);
this.sessao.save(p);
}
Dá uma verificada no stackTrace da exceção que é lançada. Posta ela aqui pra gente ver tbm.
J
JeffersonJCosta
Como faço isso?
rodrigo.bossini
catch (Exception e) {
e.printStackTrace(); //verifique outros métodos deste objeto e também que lhe retornarão informações interessantes, referentes à exceção.
out.println("Nao salvou!");
}
J
JeffersonJCosta
Coloquei essa linha:
E nao mudou nada nem apareceu tambem.
rodrigo.bossini
Ele imprime “não salvou” ?
vinicius.martinez
Man…faltou dar o rollback!!
JeffersonJCosta:
Pessoal,
try {
PessoaDAO dao = new PessoaDAO(session);
Transaction t = session.beginTransaction();
dao.Inserir(p);
t.commit();
}
catch (Exception e) {
out.println("Nao salvou!");
[b] t.rollback();[/b]
}
finally {
session.flush();
session.close();
}
J
JeffersonJCosta
Continua imprimindo Nao salvou sim e nada mais
Vou dar o rollback pra ver
J
JeffersonJCosta
Coloquei o rollback, mas continua salvando e mesmo assim mostrando erro
rodrigo.bossini
Dá um System.out.println ("Não salvou: " + e.getMessage()) e posta aqui pra gente o que acontece.
T
thiagow1
Sem o erro da Exception fica difícil ajudar
Faz o que o nosso amigo rod.attack disse coloque a mensagem da exceção para imprimir no console
H
henriquejhc
Tenta colocar assim.
// Coloca essas duas linhas fora do try
PessoaDAO dao = new PessoaDAO(session);
Transaction t = session.beginTransaction();
try {
dao.Inserir(p);
t.commit();
}
catch (Exception e) {
out.println("Nao salvou!");
t.rollback();
}
finally {
session.flush();
session.close();
}
J
JeffersonJCosta
Coloquei essa linha:
E a mensagem foi essa:
" Não salvou: could not execute query "
rodrigo.bossini
Qual é a instrução SQL que vem logo depois do INSERT? você tá usando proc’s?
J
JeffersonJCosta
Consegui descobrir o erro, depois do INSERT eu estava chamando um outro método para listar tudo que está cadastrado, o erro está nesse método, como eu ainda não vou precisar, tirei a linha, nem tinha visto isso, pois postei aki sem essa linha.
Desculpa a falta de atenção pessoal.
Brigadao pela ajuda e pela atenção.
Valeu mesmo.
Abraços.