Spring DATA JDB C не может внедрить репозиторий при запуске из весеннего интеграционного теста - PullRequest
0 голосов
/ 29 января 2020

Spring Boot JDB C с Spring Boot: 2.2.4.RELEASE, в gradle dep:

 implementation ("org.springframework.boot:spring-boot-starter-data-jdbc")

Dep к -data-jpa (см. " дублированный вопрос ")

//implementation ("org.springframework.boot:spring-boot-starter-data-jpa") is commented

Получил эту ошибку ТОЛЬКО при запуске ее из интеграционных тестов:

    "A constructor parameter name must not be null to be used with Spring Data JDBC!"
 Error creating bean with name 'myRepository': 

, где мой репозиторий определен как этот. Интерфейс У него не может быть конструктора.

public interface MyRepository extends CrudRepository<MyData, UUID> {

способ его внедрения:

@Inject
MyRepository myRepository;

Сам интеграционный тест:

@ActiveProfiles("test")
@ExtendWith(SpringExtension.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = Application.class)
public class MyResourceTest {

Раньше он работал для более низкой весенней версии загрузки от тестов. Это работает хорошо. из IDE при запуске тестов. Это работает хорошо. при запуске приложения и достижении конечных точек - оно внедряет репозитории.

Q: Как заставить Spring DATA JDB C работать без этого "Имя параметра конструктора не должно быть нулевым для использования с Spring Data JDB C! " ошибка для пружинных данных jdb c хранилищ?

ОБНОВЛЕНИЕ: только что проверено и перепроверено.

class MyData {
    //@Id Dont use the Id annotation here because I use a mapper when @Query(.. by this object 
    private UUID id;
    private String name;
    private MyData2 mydata2;

    public MyData() {}
    public MyData(String name, MyData2 mydata2) {...}
    .. all getters and setters
}

MyData2 то же самое - с по умолчанию + все аргументы конструктор. Все сделано вручную. Нет lombok.

Обновление 2:

, если я создаю папку "jdb c", поместите туда класс конфигурации с помощью @ EnableJdbcRepositories и переместите все мои data jdb c репозитории там "находиться в одном модуле". У меня все еще есть то же исключение. Если запустить из интеграционного теста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...