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 репозитории там "находиться в одном модуле". У меня все еще есть то же исключение. Если запустить из интеграционного теста.