Ola PessoALL,
Estou trabalhando com o Hibernate em um projeto web (utilizando tb o Struts). Tenho um DAO chamado SystemDAO que possue vários métodos genéricos para salvar, excluir, atualizar, carregar e etc. Um exemplo seria o método save
public void save(Object object) {
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
session.save(object);
session.flush();
tx.commit();
session.close();
}
Eu posso passar qualquer objeto mapeado pelo SessionFactory que ele irá salvar o objeto, isso está ocorrendo legal, mas note que a transação é aberta e fechada dentro do método.
Chegamos agora a uma parte do sistema (um controle de vendas) onde eu irei precisar atualizar 3 objetos, mas se ocorrer erro em algum, tem que dar rollback em todos.
A dúvida é? eu criaria um DAO específico para essa parte e criaria um método estilo:
public void updateALL(Object objeto1,Object objeto2,Object objeto3) {
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
session.save(object1);
session.save(object2);
session.save(object3);
session.flush();
tx.commit();
session.close();
}
Isso está certo?
Ou você aconselham algum outro tipo de abordagem melhor? Poderiamos exemplificar fazendo favor?
Obrigado
