Spring Boot在Derby上启用特定的嵌入式数据库HSQL

时间:2016-01-02 14:39:50

标签: java spring spring-boot spring-data-jpa hsqldb

我正在尝试在weblogic服务器上部署我的应用程序,我的应用程序有一个内存数据库,因为我使用HSQLDB进行JUNIT,我想保留HSQL作为我的内存数据库(主要是比德比稍微好一点的性能) )。由于weblogic已经是derby,当我尝试部署应用程序时,derby正在开始而不是HSQL。在初步调查中,我发现由于Derby在EmbeddedDatabaseConnection.java中定义了HSQL,因此首先启动Derby数据库。是否有任何特定的配置,我可以明确地将数据库类型嵌入到HSQL中,而不是允许spring boot基于库/类启动数据库

1 个答案:

答案 0 :(得分:1)

我首先想到的是从类路径中删除Derby并只留下HSQL。 Spring Boot docs

  

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

如果这不是一个选项,您可以指定

  1. connection type for Hibernate (JPA)
  2.   

    通过查看连接类型来检测嵌入式数据库:嵌入了hsqldb,h2和derby,其余的则没有。

    1. HSQL显式为主要数据源:

      @Configuration
      public class DataSourceConfig {
          @Bean
          public DataSource dataSource() {
              return new EmbeddedDatabaseBuilder()
                 .setType(EmbeddedDatabaseType.HSQL)
                 .build();
          }
      }
      
    2. 定义spring.datasource.type属性