【发布时间】:2018-08-27 01:43:25
【问题描述】:
我之前在 Spring Boot 项目中使用过 Embedded derby。但是现在当我通过带有 derby 依赖项的 Spring Initializr 创建项目时。我收到以下错误: 架构“SA”不存在 其次是org.hibernate.tool.schema.spi.CommandAcceptanceException: Error execution DDL via JDBC Statement
当我尝试运行我创建的早期项目时,Derby 运行良好。 PFB 早期项目的控制台:
2018-03-18 15:34:44.346 INFO 16560 --- [restartedMain] org.hibernate.cfg.Environment:HHH000021:字节码 提供者名称:javassist 2018-03-18 15:34:44.391 INFO 16560 --- [ restartedMain] o.hibernate.annotations.common.Version:HCANN000001: Hibernate Commons Annotations {5.0.1.Final} 2018-03-18 15:34:44.490 **INFO 16560 --- [restartedMain] org.hibernate.dialect.Dialect
:HHH000400:使用方言:org.hibernate.dialect.DerbyDialect 2018-03-18 15:34:44.497 WARN 16560 --- [restartedMain] org.hibernate.dialect.DerbyDialect:HHH000430:DerbyDialect 方言已被弃用;使用一种特定于版本的方言 ** 改为 2018-03-18 15:34:45.094 INFO 16560 --- [restartedMain] org.hibernate.tool.hbm2ddl.SchemaExport:HHH000227:运行 hbm2ddl 架构导出 2018-03-18 15:34:45.099 错误 16560 --- [ restartedMain] org.hibernate.tool.hbm2ddl.SchemaExport:HHH000389: 不成功:drop table book 2018-03-18 15:34:45.099 ERROR 16560 --- [restartedMain] org.hibernate.tool.hbm2ddl.SchemaExport:架构 'SA' 不存在 2018-03-18 15:34:45.129 WARN 16560 --- [ restartedMain] o.h.engine.jdbc.spi.SqlExceptionHelper:SQL 警告 代码:10000,SQLState:01J01 2018-03-18 15:34:45.129 WARN 16560 --- [ restartedMain] o.h.engine.jdbc.spi.SqlExceptionHelper : 数据库 'memory:testdb' 未创建,连接到现有数据库 反而。 2018-03-18 15:34:45.129 信息 16560 --- [restartedMain] org.hibernate.tool.hbm2ddl.SchemaExport:HHH000230:模式导出 完成 2018-03-18 15:34:45.152 INFO 16560 --- [restartedMain] j.LocalContainerEntityManagerFactoryBean :初始化的 JPA 持久性单元“默认”的 EntityManagerFactory
我当前的带有嵌入式 derby 的 Spring Boot 的控制台日志:
2018-03-18 15:42:23.234 信息 11312 --- [主要] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - 开始... 2018-03-18 15:42:23.237 警告 11312 --- [主要] **com.zaxxer.hikari.util.DriverDataSource : 注册驱动程序 driverClassName=org.apache.derby.jdbc.EmbeddedDriver 未找到, 尝试直接实例化。 2018-03-18 15:42:23.844 信息 11312 --- [ ** 主要] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - 驱动程序 不支持获取/设置连接的网络超时。 (功能不 已实施:无详细信息。)2018-03-18 15:42:23.847 INFO 11312 --- [
主] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - 开始 完全的。 2018-03-18 15:42:23.937 信息 11312 --- [主要] j.LocalContainerEntityManagerFactoryBean : 构建 JPA 容器 持久性单元“默认”的 EntityManagerFactory 2018-03-18 15:42:23.969 信息 11312 --- [主要] o.hibernate.jpa.internal.util.LogHelper:HHH000204:处理中 PersistenceUnitInfo [名称:默认...] 2018-03-18 15:42:24.136 信息 11312 --- [主] org.hibernate.Version
: HHH000412: Hibernate Core {5.2.14.Final} 2018-03-18 15:42:24.138 信息 11312 --- [主] org.hibernate.cfg.Environment
: HHH000206: hibernate.properties not found 2018-03-18 15:42:24.199 信息 11312 --- [主要] o.hibernate.annotations.common.Version:HCANN000001:休眠 Commons Annotations {5.0.1.Final} 2018-03-18 15:42:24.380 INFO 11312 --- [主要] org.hibernate.dialect.Dialect:HHH000400:使用方言:org.hibernate.dialect.DerbyTenSevenDialect 2018-03-18 15:42:25.572 警告 11312 --- [主要] o.h.t.s.i.ExceptionHandlerLoggedImpl : GenerationTarget 遇到异常接受命令:通过 JDBC 执行 DDL 时出错 声明org.hibernate.tool.schema.spi.CommandAcceptanceException: 错误 通过 JDBC 语句执行 DDL org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:67) ~[hibernate-core-5.2.14.Final.jar:5.2.14.Final] 在 org.hibernate.tool.schema.internal.SchemaDropperImpl.applySqlString(SchemaDropperImpl.java:375) [hibernate-core-5.2.14.Final.jar:5.2.14.Final]
我可以发现两者之间的区别在于,在当前日志(abv log)中,它表示 com.zaxxer.hikari.util.DriverDataSource : 注册驱动程序 driverClassName=org.apache.derby.jdbc.EmbeddedDriver 未找到, 尝试直接实例化。
如果我们需要配置以下依赖项之外的其他内容以启用此 derby,请告诉我。注意-除了上一个项目中的 maven 依赖项之外,我还没有做任何事情。
Maven 依赖:
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<scope>runtime</scope>
</dependency>
【问题讨论】:
-
看起来像 persistence.xml 中的架构“SA”不存在数据库
标签: spring spring-boot derby