将 quarkus-hibernate-reactive-panache 与 quarkus-reactive-mysql-client 一起使用时出现异常 "Not using JDBC" - (Quarkus 1.12.2.Final)
Getting exception "Not using JDBC" while using quarkus-hibernate-reactive-panache with quarkus-reactive-mysql-client - (Quarkus 1.12.2.Final)
Quarkus 1.12.2.Final
使用 reactive hibernate (quarkus-hibernate-reactive-panache) 和 reactive MySQL client 时出现以下异常(quarkus-reactive-mysql-client),请提出问题所在。
2021-04-01 11:35:28,694 ERROR [org.hib.eng.jdb.spi.SqlExceptionHelper] (Quarkus Main Thread) Not using JDBC
2021-04-01 11:35:28,727 ERROR [io.qua.run.Application] (Quarkus Main Thread) Failed to start application (with profile dev): java.sql.SQLException: Not using JDBC
at org.hibernate.reactive.provider.service.NoJdbcConnectionProvider.getConnection(NoJdbcConnectionProvider.java:25)
at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:180)
一些细节
我的application.properties
quarkus.datasource.jdbc=false
quarkus.datasource.db-kind=mysql
quarkus.datasource.username=root
quarkus.datasource.password=root
quarkus.datasource.reactive.url=mysql://localhost:3306/mydb
quarkus.datasource.reactive.max-size=20
我的存储库实现
@ApplicationScoped public class EventRepository implements PanacheRepository<Event> {
}
将您的 application.properties
更改为
quarkus.datasource.db-kind=mysql
quarkus.datasource.username=root
quarkus.datasource.password=root
quarkus.datasource.reactive.url=vertx-reactive:mysql://localhost:3306/mydb
quarkus.datasource.reactive.max-size=20
您可以尝试将以下 属性 添加到您的设置中吗?
quarkus.hibernate-orm.database.generation=update
当你 运行 你的服务器时,你可以写 drop-and-create
来重新创建你的数据库。查看详细信息 here。
这是问题的原因->我使用了属性"quarkus.hibernate-orm.database.generation=update"。使用这个 属性 似乎需要 JDBC 连接,删除它,它工作正常。
以下任何配置集都可以工作。
quarkus.datasource.db-kind=mysql
quarkus.datasource.username=****
quarkus.datasource.password=****
quarkus.datasource.reactive.url=mysql://localhost:3306/db
or
quarkus.datasource.reactive.url=vertx-reactive:mysql://localhost:3306/db
嗯。 JDBC 和 Hibernate update 应该适用于您的情况。您的项目中是否有 JDBC 扩展(依赖项)?如果没有,尝试广告一个。
如果是 postgres,您可以通过这种方式添加扩展:
./mvnw quarkus:add-extension -Dextensions="jdbc-postgresql
更多信息在这里
Add the agroal extension plus one of jdbc-db2, jdbc-derby, jdbc-h2, jdbc-mariadb, jdbc-mssql, jdbc-mysql, jdbc-oracle or jdbc-postgresql.
“Hibernate Reactive 的最新版本尚不支持模式更新和验证。”
此处相对问题:
将此依赖项添加到您的 pom.xml
文件中。
<!-- https://mvnrepository.com/artifact/io.quarkus/quarkus-jdbc-postgresql -->
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-jdbc-postgresql</artifactId>
<version>2.9.2.Final</version>
</dependency>
Quarkus 1.12.2.Final
使用 reactive hibernate (quarkus-hibernate-reactive-panache) 和 reactive MySQL client 时出现以下异常(quarkus-reactive-mysql-client),请提出问题所在。
2021-04-01 11:35:28,694 ERROR [org.hib.eng.jdb.spi.SqlExceptionHelper] (Quarkus Main Thread) Not using JDBC
2021-04-01 11:35:28,727 ERROR [io.qua.run.Application] (Quarkus Main Thread) Failed to start application (with profile dev): java.sql.SQLException: Not using JDBC
at org.hibernate.reactive.provider.service.NoJdbcConnectionProvider.getConnection(NoJdbcConnectionProvider.java:25)
at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:180)
一些细节
我的application.properties
quarkus.datasource.jdbc=false
quarkus.datasource.db-kind=mysql
quarkus.datasource.username=root
quarkus.datasource.password=root
quarkus.datasource.reactive.url=mysql://localhost:3306/mydb
quarkus.datasource.reactive.max-size=20
我的存储库实现
@ApplicationScoped public class EventRepository implements PanacheRepository<Event> {
}
将您的 application.properties
更改为
quarkus.datasource.db-kind=mysql
quarkus.datasource.username=root
quarkus.datasource.password=root
quarkus.datasource.reactive.url=vertx-reactive:mysql://localhost:3306/mydb
quarkus.datasource.reactive.max-size=20
您可以尝试将以下 属性 添加到您的设置中吗?
quarkus.hibernate-orm.database.generation=update
当你 运行 你的服务器时,你可以写 drop-and-create
来重新创建你的数据库。查看详细信息 here。
这是问题的原因->我使用了属性"quarkus.hibernate-orm.database.generation=update"。使用这个 属性 似乎需要 JDBC 连接,删除它,它工作正常。
以下任何配置集都可以工作。
quarkus.datasource.db-kind=mysql
quarkus.datasource.username=****
quarkus.datasource.password=****
quarkus.datasource.reactive.url=mysql://localhost:3306/db
or
quarkus.datasource.reactive.url=vertx-reactive:mysql://localhost:3306/db
嗯。 JDBC 和 Hibernate update 应该适用于您的情况。您的项目中是否有 JDBC 扩展(依赖项)?如果没有,尝试广告一个。
如果是 postgres,您可以通过这种方式添加扩展:
./mvnw quarkus:add-extension -Dextensions="jdbc-postgresql
更多信息在这里
Add the agroal extension plus one of jdbc-db2, jdbc-derby, jdbc-h2, jdbc-mariadb, jdbc-mssql, jdbc-mysql, jdbc-oracle or jdbc-postgresql.
“Hibernate Reactive 的最新版本尚不支持模式更新和验证。”
此处相对问题:
将此依赖项添加到您的 pom.xml
文件中。
<!-- https://mvnrepository.com/artifact/io.quarkus/quarkus-jdbc-postgresql -->
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-jdbc-postgresql</artifactId>
<version>2.9.2.Final</version>
</dependency>