I found that spring @Transactional should be placed in Service layer not in the DAO layer?
But when I use @Transactional(Spring) in only service layer, an exception is thrown "Could not obtain transaction-synchronized Session for current thread" but when I use @Transactional(@Spring) in both DAO and Service , this issue is resolved.
Am I doing it wrong?