Transações sem dar rollback com Hibernate

0 respostas
thiagofesta

Olá,

Tenho uma dúvida que deve ser simples.

Se eu fizer o seguinte: abrir um transação usando hibernate, inserir, caso não de erros, dou um comit, e em caso de erro eu NÂO DER UM ROLLBACK, o que acontece quando eu der um flush e um close, ele da automaticamente o rollback?

Não quero dar o rollback, pra economizar código.
Ou o ideal é dar o rollback?

Meu dao:
package com.wpbrainiac.dao;

import com.wpbrainiac.pojo.Produto;
import org.hibernate.Session;
import org.hibernate.Transaction;

/**
 *
 * @author Thiago Felipe Festa
 */
public class ProdutoDAO {

    private Session session;
    private Transaction transaction;

    public ProdutoDAO(Session session) {
        this.session = session;
    }

    public void salvar(Produto p) throws Exception {
        this.transaction = this.session.beginTransaction();
        this.session.save(p);
        this.transaction.commit();
        this.session.flush();
        this.session.close();
    }

}
Local onde faço a inserção:
Produto p = new Produto();
        p.setNome("Nome aqui");
        p.setDescricao("Descrição aqui");
        p.setPreco(100.50);

        Session session = new HibernateUtil().getSession();
        ProdutoDAO produtoDAO = new ProdutoDAO(session);
        try {
            produtoDAO.salvar(p);
        } catch(Exception e) {
            //IREI PRECISAR DE UM GET NO DAO PARA DAR O .rollback(); isso é chato!
            // MENSAGEM DE ERRO AQUI!
        }
Criado 8 de agosto de 2009
Respostas 0
Participantes 1