Olá pessoal,
em minha aplicação tenho dois DAO’s em pacotes diferentes, no “DAO A” eu executo uma inserção no banco de dados, porém, eu não posso comitar a inclusão antes de fazer um update em outra tabela do banco atravésdo “DAO B”.
A minha dúvida, é: Como eu faço para aproveitar a mesma conexão e dar o commit somente após eu atualizar a tabela no “DAO B”? Posso chamar o método de update do “DAO B” de dentro do método de inserção do “DAO A” e passar como parâmetro a conexão do A?
Gostaria de saber se isto é correto, e caso não seja qual a melhor forma.
Obrigado.
Olha, quando eu uso JDBC e preciso desse tipo de lógica, eu faço da forma que você citou. Apenas tomo o cuidado de passar a conexão corretamente para o outro método.
Oi amigo, mas eu creio que um DAO acessando o outro diretamente aumenta o acoplamento. O que você acha?
Obrigado.
Pense em algo como um Command, que é uma classe que tem a função de executar alguma coisa. Nela você consegue garantir que um Dao irá executar uma função e o outro outra, e se um deles der problema, vc faz um rollback geral.
Bom, este pattern tem outras funcionalidades, mas em suma, é garantir que vc não acople classes diretamente uma na outra.
De uma procurada aqui no pj nos posts velhos sobre isso.
abraços!