Hi. In my application, I have a couple of DAOs and facades. (DAOs are implementing using Spring's HibernateDaoSupport). Consider the following facade's method :
And I use TransactionInterceptor to control all the facades methods. 1- Should I specify transaction attributes for DAO methods ? Or because all of the DAO's calls are made in a facade, specifying tx attributes for the facade is enough ? 2- Which exceptions handling strategy is better : a) catch runtime exceptions in doSomethingFancy( ) and then rethrow a checked exception, configure TransactionInterceptor to roll back the tx upon that checked exception. b) don't catch any exceptions all at in doSomethingFancy( ), configure TransactionInterceptor to roll back the tx upon receiving DaoAccessException.