无法注入默认 MySQL 数据源
Cannot inject default MySQL datasource
我正在努力注入默认数据源,但出现以下错误:
javax.enterprise.inject.IllegalProductException: Normal scoped producer method may not return null:
io.quarkus.agroal.runtime.DataSourceProducer.createDefaultDataSource()
这是我目前的情况:
application.properties
quarkus.datasource.driver = com.mysql.cj.jdbc.Driver
quarkus.datasource.jdbc.url=jdbc:mysql://localhost:3307/sandbox
quarkus.datasource.username=root
quarkus.datasource.password=password
quarkus.datasource.jdbc.min-size=0
quarkus.datasource.jdbc.max-size=11
MyClass.java
@ApplicationScoped
public class MyClass {
@Inject
AgroalDataSource dataSource;
void methodUsingDataSource() {...}
}
但是我让它与命名数据源一起使用,默认配置为 SAME:
application.properties
quarkus.datasource.users.driver = com.mysql.cj.jdbc.Driver
quarkus.datasource.users.url=jdbc:mysql://localhost:3307/sandbox
quarkus.datasource.users.username=root
quarkus.datasource.users.password=password
quarkus.datasource.users.min-size=0
quarkus.datasource.users.max-size=11
MyClass.java
@ApplicationScoped
public class MyClass {
@Inject
@DataSource("users")
AgroalDataSource dataSource;
void methodUsingDataSource() {...}
}
您知道如何解决此问题吗?当我想设置 Hibernate 时,这会导致我出现问题。
删除这一行:
quarkus.datasource.driver = com.mysql.cj.jdbc.Driver
并改用它:
quarkus.datasource.db-kind = mysql
您在默认数据源中混合使用已弃用的配置属性和新的配置属性,并且您的组合不起作用。
您给出的带有命名数据源的示例仅使用旧的配置属性,因此它工作正常。
现在我需要了解您为什么没有正确的错误消息。我会努力改进它。
我正在努力注入默认数据源,但出现以下错误:
javax.enterprise.inject.IllegalProductException: Normal scoped producer method may not return null: io.quarkus.agroal.runtime.DataSourceProducer.createDefaultDataSource()
这是我目前的情况:
application.properties
quarkus.datasource.driver = com.mysql.cj.jdbc.Driver
quarkus.datasource.jdbc.url=jdbc:mysql://localhost:3307/sandbox
quarkus.datasource.username=root
quarkus.datasource.password=password
quarkus.datasource.jdbc.min-size=0
quarkus.datasource.jdbc.max-size=11
MyClass.java
@ApplicationScoped
public class MyClass {
@Inject
AgroalDataSource dataSource;
void methodUsingDataSource() {...}
}
但是我让它与命名数据源一起使用,默认配置为 SAME:
application.properties
quarkus.datasource.users.driver = com.mysql.cj.jdbc.Driver
quarkus.datasource.users.url=jdbc:mysql://localhost:3307/sandbox
quarkus.datasource.users.username=root
quarkus.datasource.users.password=password
quarkus.datasource.users.min-size=0
quarkus.datasource.users.max-size=11
MyClass.java
@ApplicationScoped
public class MyClass {
@Inject
@DataSource("users")
AgroalDataSource dataSource;
void methodUsingDataSource() {...}
}
您知道如何解决此问题吗?当我想设置 Hibernate 时,这会导致我出现问题。
删除这一行:
quarkus.datasource.driver = com.mysql.cj.jdbc.Driver
并改用它:
quarkus.datasource.db-kind = mysql
您在默认数据源中混合使用已弃用的配置属性和新的配置属性,并且您的组合不起作用。
您给出的带有命名数据源的示例仅使用旧的配置属性,因此它工作正常。
现在我需要了解您为什么没有正确的错误消息。我会努力改进它。