我的类路径中有一个 import.sql 文件,其中包含一些 INSERT 语句。当使用 profile=devel 运行我的应用程序时,它的数据正在加载到 postgres 数据库中,到目前为止还可以。
当使用测试配置文件 import.sql 执行测试时,也会触发导入导致“找不到表”异常。不确定这里的原因是什么,但无论如何我都不想使用这些数据进行测试。
我怎么能阻止这个?为测试配置文件设置 hibernate.ddl-auto=none 似乎不是解决方案,因为它也阻止了模式的生成。
我是Spring(Boot)的新手,并试图获得与HSQLDB服务器的池化数据库连接.
的pom.xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.0.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
</dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)
myDataSource
@Bean
@Profile("devel")
public DataSource myDataSource() {
HikariConfig config = new HikariConfig();
config.setJdbcUrl("org.hsqldb.jdbc.JDBCDataSource://localhost:9001/devel");
config.setUsername("SA");
HikariDataSource ds = new HikariDataSource(config);
Run Code Online (Sandbox Code Playgroud)
当调试器到达最后一行时,它抛出:
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration': Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'myDataSource' defined in …Run Code Online (Sandbox Code Playgroud) 在projectA中执行mvn clean编译时,我得到的包不存在编译错误。错误是指从projectB导入的软件包,这是一个Spring Boot项目(projectA是一个常规的maven项目)。projectB可以很好地编译,生成的jar位于我的本地Maven存储库中。
projectB包含在projectA中:
<projectB.version>1.0.4-SNAPSHOT</projectB.version>
[...]
<dependency>
<groupId>de.company</groupId>
<artifactId>projectB</artifactId>
<version>${projectB.version}</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我已经进行了常规清洁,还手动删除了projectB本地存储库中的内容。