Nil*_*esh 12 spring hibernate transactional spring-test junit4
我使用的是Spring 3.2,Hibernate和JUnit 4.
我的Dao课程如下:
@Transactional public class SomeDaoImpl implements SomeDao { 
如果直接从Web应用程序执行,则对此工作进行更新操作.但是,我发现执行更新方法的junit集成测试实际上并不会保留更改.在执行junit方法时,事务是否会滚动事务?
nob*_*beh 24
通过引用,Spring中的测试上下文中不会持久化事务.如上所述,虽然不常见,但如果仍需要这样做,则可以使用@TransactionConfiguration和@Rollback更改默认行为.
duf*_*ymo 12
DAO不应该是交易性的.DAO如何知道它是否应该参与更大的交易?
服务应该在典型的Spring分层体系结构中拥有事务.
通常以回滚的方式运行数据库的单元测试.您不希望测试更改数据库,除非您已设置可以随意删除并重新创建的测试数据库.
问题应该是:你的测试如何编写提交交易?如果你永远不会提交,你将永远不会看到记录.
从文档的"测试"部分,您可以使用
 @Rollback(false) 
如果您不希望SpringJUnit4ClassRunner回滚您的事务,则注释.
| 归档时间: | 
 | 
| 查看次数: | 27177 次 | 
| 最近记录: |