You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Quarkus Reactive Hibernate测试报MySQL JDBC驱动缺失错误排查

解决Quarkus Reactive Hibernate测试找不到MySQL驱动的问题

1. 统一测试环境的数据源配置

你当前仅在prod环境设置了quarkus.datasource.jdbc=false,但测试用例默认使用test环境,需在application-test.properties中补充完整的Reactive数据源配置:

# 禁用JDBC模式,启用Reactive数据源
quarkus.datasource.jdbc=false
# 配置Reactive MySQL连接地址
quarkus.datasource.reactive.url=mysql://localhost:3306/你的数据库名
# 数据库账号密码
quarkus.datasource.reactive.username=你的用户名
quarkus.datasource.reactive.password=你的密码
# 指定Reactive驱动类
quarkus.datasource.reactive.driver=io.vertx.mysqlclient.MySQLDriver

2. 确保测试依赖完整

在pom.xml中补充测试环境的Reactive MySQL客户端依赖(若主依赖未覆盖测试场景):

<dependency>
    <groupId>io.quarkus</groupId>
    <artifactId>quarkus-smallrye-mutiny-vertx-mysql-client</artifactId>
    <scope>test</scope>
</dependency>

3. 配置Hibernate Reactive适配项

在测试配置文件中添加Hibernate Reactive的方言设置,避免它尝试加载JDBC驱动:

# 指定MySQL的Reactive方言
quarkus.hibernate-orm.dialect=org.hibernate.reactive.mutiny.MySQLMutinyDialect
# 清空JDBC相关配置,防止冲突
quarkus.hibernate-orm.jdbc.url=
quarkus.hibernate-orm.jdbc.driver=

4. 规范测试类的数据源注入

测试类中使用Reactive风格的SessionFactory而非传统EntityManagerFactory:

@Inject
Mutiny.SessionFactory sessionFactory;

内容的提问来源于stack exchange,提问作者J M Patel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 14:44:55