I have several DAOs which all work with the same data resource (particularly, JCR), and some of them are even more specific, i.e., work only within the same node subtree.

The question is, what is the best practice regarding TransactionManager-s configuration (by now I'm just using spring-modules-jcr LocalTransactionManager)?

Specifically, should I have one transactionManager for each DAO, one transactionManager for all the DAOs that operate on the same data, or a separate transactionManagers for each DAO regardless of what data the DAO is accessing?