[英]Spring/Hibernate/TestNG - manual session and transaction setup
我正在尝试为使用普通 Hibernate API 的 DAO 类创建一个测试用例(没有 Spring 之类的东西,例如 HibernateTemplate,HibernateDaoSupport),就像这样:
sessionFactory.getCurrentSession().save(obj);
我在 spring 上下文中有适当的 sessionFactory 和 transactionManager 定义,如 spring 文档中所示。
我想要的是在我的启动代码中打开一个事务并在最后回滚。
因此,这与默认的 Spring 单元测试支持每个测试方法调用的事务概念不同,因此我无法扩展 AbstractTransactionalTestNGSpringContextTests。
我需要一种方法来启动交易并以某种方式将其提供给 session 工厂。 我觉得这应该非常容易,但经过大量阅读和实验后无法实现。
任何帮助将不胜感激。
如果不想使用HibernateTemplate
,可以直接使用transactionManager
,如10.6.2 使用 PlatformTransactionManager 中所述。
try {
Session session = factory.openSession();
Transaction tx = session.beginTransaction();
...
tx.commit();
session.close();
} catch (SomeException e) {
tx.rollback();
...
}
@Transactional(只读 = 假,传播 = Propagation.REQUIRED)
使用上面的注释测试方法
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.