Невозможно внедрить источник данных по умолчанию MySQL - PullRequest
0 голосов
/ 01 мая 2020

Я изо всех сил пытаюсь внедрить источник данных по умолчанию, но у меня есть следующая ошибка:

javax.enterprise.inject.IllegalProductException: Обычный метод источника области действия может не возвращать нуль: 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.

1 Ответ

1 голос
/ 01 мая 2020

Удалите эту строку:

quarkus.datasource.driver = com.mysql.cj.jdbc.Driver

и используйте вместо этого:

quarkus.datasource.db-kind = mysql

Вы смешиваете устаревшие и новые свойства конфигурации в источнике данных по умолчанию, и ваша комбинация этого не делает t работа.

В приведенном вами примере с указанным источником данных используются только старые свойства конфигурации, поэтому он работает нормально.

Теперь мне нужно понять, почему у вас не появилось правильное сообщение об ошибке. , Я go буду работать над улучшением этого.

...