Предположим, что пользовательская базовая реализация JpaRepository выглядит следующим образом.
public class SimpleCustomJpaRepository<T, ID extends Serializable> extends SimpleJpaRepository<T, ID> implements CustomJpaRepository<T, ID> {
@Override
public List<T> findAllCustom() {
...
}
}
Базовый репозиторий зарегистрирован с использованием аннотации @EnableJpaRepositories
.
@EnableJpaRepositories(value = "org.somebody.repository", repositoryBaseClass = SimpleCustomJpaRepository.class)
Как настроить интеграционный тест для UserRepository
, который расширяет интерфейс CustomJpaRepository
, и должен ли для этого использовать пользовательскую базовую реализацию?
public interface UserRepository extends CustomJpaRepository<User, Long> { ... }
Используемый в настоящее время интеграционный тест завершается с org.springframework.data.mapping.PropertyReferenceException: No property findAllCustom found for type User!
. На самом деле не удалось загрузить ApplicationContext
, потому что моя реализация пользовательского базового репозитория не была зарегистрирована во время интеграционного теста, и поэтому реализация для findAllCustom
не была найдена.
@ExtendWith(SpringExtension.class)
@DataJpaTest
class UserRepositoryTest {
@Autowired
private UserRepository userRepository.
}
Как мне зарегистрировать пользовательский JpaRepository
реализация в сочетании с тестом интеграции репозитория JPA?