我正在尝试在Weblogic服务器上部署我的应用程序,我的应用程序有一个内存数据库,并且由于我将HSQLDB用于JUNIT,所以我希望保留HSQL作为内存数据库(主要是比derby更好的性能)。由于weblogic已经有了derby,因此当我尝试部署应用程序时,derby而不是HSQL正在入门。在初步调查中,我发现由于Derby是在EmbeddedDatabaseConnection.java中的HSQL之上定义的,因此首先启动Derby数据库。是否有任何特定的配置,我可以将数据库类型显式地嵌入到HSQL中,而不是允许spring boot根据库/类启动数据库

最佳答案

我能想到的第一个尝试是从类路径中删除Derby,仅在其中保留HSQL。 Spring Boot docs


  如果HSQLDB在您的类路径上,并且尚未手动配置
  任何数据库连接Bean,那么我们将自动配置
  内存数据库。


如果不是这样,您可以指定


connection type for Hibernate (JPA)



  通过查看“连接”类型,可以检测到嵌入式数据库:hsqldb,h2和derby是嵌入式的,其余的则不是。



HSQL明确地作为主要数据源:

@Configuration
public class DataSourceConfig {
    @Bean
    public DataSource dataSource() {
        return new EmbeddedDatabaseBuilder()
           .setType(EmbeddedDatabaseType.HSQL)
           .build();
    }
}

定义spring.datasource.type属性

10-06 09:19