【发布时间】:2017-03-29 07:39:16
【问题描述】:
在 spring+hibernate 应用程序中测试 DAO 功能时,没有发生数据回滚。我正在尝试通过 @Rollback 注释回滚一个 junit 测试用例
transactionManager 配置:
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="emf" />
</bean>
在我的主代码中,我使用 hibernateTemplate() 进行 CRUD 操作
测试代码:
@Test
@Transactional
@Rollback(true)
public void test_populateObject() throws Exception {
// TransactionDefinition def = new DefaultTransactionDefinition();
// TransactionStatus status = transactionManager.getTransaction(def);
manualObj= new ManualObj();
manualObj.setName("TestObj001");
manualObj.setRefId("TestObj001");
manualObj.setCallback("TestObj001");
m
TestObject obj=orderService.createTestObject(manualObj);
Assert.assertNotNull(obj);
// transactionManager.rollback(status);
}
创建的对象没有被回滚删除。
那么,@Rollback 没有发生的原因可能是什么?
编辑 1:
我在同一个应用程序中使用 Spring Data JPA 和基于 hibernateTemplate 的数据访问。两者都使用与上述 bean 配置一样指定的相同事务管理器。
【问题讨论】:
标签: spring hibernate spring-data spring-data-jpa junit4