Olá, pessoal.
Sou um grande leitor do GUJ. Encontro quase tudo que preciso aqui, mas estou com um problema que não achei nada parecido na Internet, ou se achei não entendi. Preciso de ajuda, por isto eu finalmente me cadastrei.
Dados:
Hibernate 3
JDBC - mysql-connector… 5.1.7
POOL - c3p0
Minha persistencia:
class DAO(){
public void Insert(Object objeto) throws Exception{
try {
Session s = HB.getSession();
Transaction t = s.beginTransaction();
s.save(objeto);
t.commit();
s.flush();
s.close();
LOG.LOG("DAO", "EVENTO", "Cadastrou novo " + objeto.getClass().getSimpleName().toString());
} catch (Exception ex) {
LOG.LOG("DAO", "ERRO", "Cadastrar novo " + objeto.getClass().getSimpleName().toString()+". Detalhes do erro: "+ex.toString());
}
}
public void Update(Object objeto) {
try {
Session s = HB.getSession();
Transaction t = s.beginTransaction();
s.update(objeto);
t.commit();
s.flush();
s.close();
LOG.LOG("DAO", "EVENTO", "Atualizou um " + objeto.getClass().getSimpleName().toString());
} catch (Exception ex) {
LOG.LOG("DAO", "ERRO", "Atualizar um " + objeto.getClass().getSimpleName().toString()+". Detalhes do erro: "+ex.toString());
}
}
public void Deleta(Object objeto) {
try {
Session s = HB.getSession();
Transaction t = s.beginTransaction();
s.delete(objeto);
t.commit();
s.flush();
s.close();
LOG.LOG("DAO", "EVENTO", "Deletou um " + objeto.getClass().getSimpleName().toString());
} catch (Exception ex) {
LOG.LOG("DAO", "ERRO", "Deletar um " + objeto.getClass().getSimpleName().toString()+". Detalhes do erro: "+ex.toString());
}
}
public List getO(String hql) {
List obj = new ArrayList();
Session s = HB.getSession();
Transaction t = s.beginTransaction();
Query q = s.createQuery(hql);
obj = q.list();
t.commit();
s.flush();
s.close();
return obj;
}
}
Bom, meu projeto está bem grande agora, e tudo funcionava perfeitamente, entretanto, depois que fiz uma classe para controle de POSTs (uma servlet recebe o request e manda para esta minha classe, ela trabalha o request, grava as informações necessárias e redireciona para uma outra página. Bem… Tudo está funcionando até aqui, mas depois deste processo ser executado, o hibernate não inicia mais uma transação.
Depurando, percebi que quando chega na linha “Transaction t = s.beginTransaction();”, ele para. Simplesmente para, posso esperar o quanto for, ele não sai dali.
Como não tenho muita experiência com Hibernate, não sei o que pode estar acontecendo.
É importante ressaltar que esta classe citada acima, funciona em todo meu projeto. Eu construo o projeto, rodo, funciona tudo certinho. Basta eu usar a classe que eu mencionei que executa algumas ações com o request (chamado pela Servlet) e pronto, ele termina a ação (um inserção no banco) depois nada mais acontece.
Agradeceria qualquer ajuda do que possa ser, vou continuar procurando a solução na Internet.
Att,
McLuck