【问题标题】:Does @Transactional automatically rollback transaction in Spring 3?@Transactional 在 Spring 3 中是否自动回滚事务?
【发布时间】:2012-08-05 00:25:28
【问题描述】:

我正在作为单元测试运行,即使我在 spring 3.1 中不使用@rollback,它也会自动返回。 我的测试看起来像

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:application-context.xml" })
public class PersonServiceTest {

    @Test
    @Transactional
    public void savePerson() {
            Person person = createPerson();
            personService.savePerson(person);
    }
}

是否默认设置回滚行为?

【问题讨论】:

  • TL;DR:是的,这是默认设置。

标签: spring unit-testing transactions


【解决方案1】:

默认SpringJUnit4ClassRunner会自动回滚事务。

要消除这种影响,请在您的测试类上使用 @TransactionConfiguration(defaultRollback=false) 或在每个测试上使用 @Rollback(false)

【讨论】:

  • ...在 Spring 5 上,@Commit 替换 @Rollback(false)
猜你喜欢
  • 1970-01-01
  • 2011-07-18
  • 2017-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-16
  • 1970-01-01
  • 2019-09-27
相关资源
最近更新 更多