Javadoc到SqlSessionDaoSupport
班说:
... @ Autowired已从setSqlSessionTemplate中移除 版本1.2.0中的setSqlSessionFactory。
为什么?在这种情况下,我必须手动将sqlSessionFactory设置为我的daos并测试类(我使用dbUnit进行持久性测试)
答案 0 :(得分:2)
@Autowired
:https://code.google.com/p/mybatis/issues/detail?id=763
作为通用目标框架,MyBatis不应该强制断言,例如“ApplicationContext中只有一个sqlSessionFactory”,这就是删除@Autowired
的原因。
作为一种解决方法,您可以编写自己的MyAppSqlSessionDaoSupport
SqlSessionDaoSupport
,并使用
setSqlSessionFactory(...)
@Autowired
public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {
if (!this.externalSqlSession) {
this.sqlSession = new SqlSessionTemplate(sqlSessionFactory);
}
}
然后,让您的DAO延伸MyAppSqlSessionDaoSupport
而不是SqlSessionDaoSupport
。