次のように定義された多くの DAO があります。
IxxxDAO
私はMyBatisを使用しています。これが私の構成です。
@Configuration
@MapperScan(basePackages = {
"com.dounets.app.adm.**.dao",
"com.dounets.app.pi.bil.**.dao",
"com.dounets.app.pi.common.**.dao",
"com.dounets.app.pi.dd.**.dao",
"com.dounets.app.pi.dm.**.dao",
"com.dounets.app.pi.dmv2.**.dao",
"com.dounets.app.pi.pim.**.dao",
"com.dounets.app.pi.report.**.dao",
"com.dounets.app.pi.tat.**.dao",
"com.dounets.app.pi.ui.**.dao",
"com.dounets.app.process.dao",
})
public class MyBatisConfiguration {
@Bean
public SqlSessionFactory sqlSessionFactory(DataSource dataSource, ApplicationContext applicationContext) throws Exception {
SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
sessionFactoryBean.setDataSource(dataSource);
sessionFactoryBean.setMapperLocations(applicationContext.getResources("classpath:mapper/*.xml"));
return sessionFactoryBean.getObject();
}
}
いくつかのパッケージをコメントアウトすると、うまくいきました。しかし、すべてのパッケージをスキャンすると、例外がスローされます:
Unsatisfied dependency expressed through bean property 'sqlSessionFactory'
完全なエラー:
Unsatisfied dependency expressed through bean property 'sqlSessionFactory': :
Error creating bean with name 'IAdmCmtUsrLikeDAO' defined in file [IAdmCmtUsrLikeDAO.class]:
各パッケージをスキャンしようとしましたが、すべてのパッケージは問題ありません。
私のサンプル IxxxDAO を見てみましょう:
public interface IAdmCmtUsrLikeDAO extends IApplicationDAO {
int delete(AdmCmtUsrLikeVOKey data) throws SQLException;
int insert(AdmCmtUsrLikeVO data) throws SQLException;
List<AdmCmtUsrLikeVO> select() throws SQLException;
AdmCmtUsrLikeVO select(AdmCmtUsrLikeVOKey data) throws SQLException;
int update(AdmCmtUsrLikeVO data) throws SQLException;
int update(HashMap<String, Object> data) throws SQLException;
}