Spring boot Flyway&;MyBatis:Spring引导的Java配置

Spring boot Flyway&;MyBatis:Spring引导的Java配置,spring-boot,mybatis,flyway,Spring Boot,Mybatis,Flyway,我正在尝试使用Spring Boot、HSQLDB、Flyway和MyBatis编写一个web应用程序。我开始时没有MyBatis,每次删除HSQLDB时,Flyway都会愉快地创建数据库 在我添加MyBatis之后,一切都很好,直到我不得不更改初始SQL文件并删除数据库。现在我无法启动web应用程序。似乎Flyway和MyBatis在某种程度上是相互依赖的 我的数据库配置: @Configuration public class DatabaseConfiguration { @Bean

我正在尝试使用Spring Boot、HSQLDB、Flyway和MyBatis编写一个web应用程序。我开始时没有MyBatis,每次删除HSQLDB时,Flyway都会愉快地创建数据库

在我添加MyBatis之后,一切都很好,直到我不得不更改初始SQL文件并删除数据库。现在我无法启动web应用程序。似乎Flyway和MyBatis在某种程度上是相互依赖的

我的数据库配置:

@Configuration
public class DatabaseConfiguration {

  @Bean
  public DataSource dataSource() { ... }

  @Bean
  public DataSourceTransactionManager transactionManager() { ... }

  @Bean
  public static MapperScannerConfigurer mapperScannerConfigurer() { ... }

  @Bean
  public DataSourceInitializer dataSourceInitializer() throws Exception { ... }

  @Bean
  public SqlSessionFactoryBean sqlSessionFactoryBean() throws Exception { ... }

  @Bean
  public SqlSessionTemplate sqlSessionTemplate() throws Exception { ... }

}
我完全理解
MapperScannerConfigure
SqlSessionFactoryBean
SqlSessionTemplate
都来自MyBatis,所有Flyway的东西都由Spring Boot完成。据我所知,Flyway需要一个
数据源
,MyBatis需要一个数据库,其中Flyway脚本已经运行,以允许初始化映射器

我得到的错误是

### Error querying database.  Cause: java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: MY_TABLE
### The error may exist in file [/home/work/Eclipse/com.sjngm.hs/target/classes/sqlmap/MyTableMapper.xml]
### The error may involve com.sjngm.hs.dao.mapper.MyTableMapper.getByName
### The error occurred while executing a query
### SQL: SELECT *       FROM MY_TABLE      WHERE Name = ?
### Cause: java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: MY_TABLE
请注意,在整个日志文件中没有任何迹象表明Flyway已经做了一些事情。此外,我在HSQLDB的文件中找不到任何
CREATE TABLE
,这使得上面的错误表示它找不到TABLE MY_TABLE

我已经尝试将
dataSource()
移动到一个新的配置类中,但没有任何帮助


我需要做些什么来解决这种间接依赖关系?

是什么帮助了
dataSource()
a
@FlywayDataSource