如果未明确指定,则@Transactional需要在应用程序上下文中使用名称为transactionManager的bean。使用@Transaction批注值属性指定要与测试一起使用的事务管理器
例如,如果您想使用hibernateTransactionManager,请指定为
@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(classes = { ApplicationConfig.class, CachingConfig.class }, loader = AnnotationConfigContextLoader.class)@PersistenceContext@Transactional("hibernateTransactionManager")public class EHCacheTest extends AbstractTransactionalJUnit4SpringContextTests {}否则,将您要使用的事务管理器重命名为默认名称transactionManager
@Bean public PlatformTransactionManager transactionManager() { // TODO: Really need this? final HibernateTransactionManager transactionManager = new HibernateTransactionManager(); transactionManager.setSessionFactory(sessionFactory().getObject()); return transactionManager; }


