En spring puedes definir que todos los methodos q no realizan una modification de datos creen una transaction readOnly esto evitara que hibernate instancie todo el aparataje que faculta hacer rollback con esto la transaction va a consumir menos memoria e ira un escaso mas veloz

Aqui el bean del cual eradan todos los beans de la capa servicio de nuestra application

bean id=service abstract=true class=org.springframework.transaction.interceptor.TransactionProxyFactoryBean
property name=transactionManager ref=transactionManager
property name=transactionAttributes
props
prop key=crear*PROPAGATION_REQUIRED-Exceptionprop
prop key=modificar*PROPAGATION_REQUIRED-Exceptionprop
prop key=suprimir*PROPAGATION_REQUIRED-Exceptionprop
prop key=*PROPAGATION_REQUIREDreadOnlyprop
props
property
bean



y todos los bean de la capa de servicio determinan como padre a esta bean para heredar la configuation de transacciones

bean id=myBean parent=service ....