Utilizando commit / rollback com DAO e camada de negocio

Pessoal, tenho o seguinte problema:

Tenho uma classe UserDAO onde tenho o método delete, observe como obtenho a conn


    public boolean delete( long cod_usuario ) throws SQLException {
        Connection conn = null;
        PreparedStatement stmt = null;
        boolean deletou = false;
        try {
            
            conn = DBConnection.getConnection();
            stmt = conn.prepareStatement(LoadSQL.getInstance().Load("UsuarioDAO.delete"));
            stmt.setLong( 1, cod_usuario );
            deletou = (stmt.executeUpdate() > 0) ? true : false;
           } catch (SQLException e) {
            Log.getInstance(EmpresaDAO.class).error("[delete] UsuarioDAO: " + e.getMessage());
            throw e;
        } finally {
            DBConnection.closeConnection( stmt );
        }
        return deletou;
    } 

Na mina camada de negócio, ao deletar um usuario preciso fazer a deleção em outras tabelas (outros DAO ) como grupo e empresa.

Mas não consigo setar a propriedade de autocommit da conexao como false,
Já que em cada DAO tenho uma connection…

Eu precisaria de algo como no exemplo com **.

  CÓDIGO DA CAMADA DE NEGOCIO.


    public boolean delete( long cod_usuario ) throws SQLException {

       //***** set autocommit false*****

        grupo.BD.getInstance().delete;
        empresaBD.getInstance().delete;       
        
        return (new UsuarioDAO()).delete( cod_usuario );

       //******** commit ou rollback**

    }    

Alguém poderia me dizer qual seria a forma correta de implementar isso…
lembrando que não utilizo EJB.

Certamente o seu método (CRUD) usar uma conexão própria e a fechar em seguida não é a melhor solução.

http://www.guj.com.br/posts/list/17678.java

Isso acontece pq vc está usando um DAO para cada tabela(objeto). Vc pode fazer duas coisas: colocar no UserDAO os sqls para excluir os dados das outras tabelas e aí sua transação estaria encapsulada no mesmo DAO… ou entaum usar um datasource do tipo XA.

http://www.theserverside.com/discussions/thread.tss?thread_id=21385

[]'s

renato