Estou dando manutenção em um projeto feito em Spring + JSF, e ao mesmo tempo estou lendo “Spring em ação”. No meio dos meus testes, eu percebi que fazia mais sentido colocar as anotações no meu modelo, ex:
public ObjetoModel {
private ObjetoDAO objetoDAO;
@Transactional(propagation = Propagation.REQUIRED)
public void inserir(Objeto objeto) throws BusinessException, DAOException {
// n validações aqui, a aplicações de regras de negocios
// ...
// ....
objetoDAO.inserir(objeto);
}
}
só que no projeto, as anotações @Transactional estão na camada do DAO, ou seja, se no inicio do meu Model, eu fazer alterações no banco e no final lançar uma exception, só pelo fato de ja ter passado pelo DAO, ele vai dar o commit! :?
Agora a duvida, eu estou com a visão errada de querer colocar @Transactional nos meus metodos do Model?
edit: titulo