У меня есть реализация репозитория типа CrudRepository . Я пытаюсь смоделировать этот интерфейс с другим интерфейсом, который расширяет его.
Я заметил, что если я вызываю метод findAll, он работает как положено, но когда я вызываю метод findById, я получаю ошибку, подобную этой:
Micronaut Data method is missing compilation time query information. Ensure that the Micronaut Data annotation processors are declared in your build and try again with a clean re-build.
java.lang.IllegalStateException: Micronaut Data method is missing compilation time query information. Ensure that the Micronaut Data annotation processors are declared in your build and try again with a clean re-build.
at io.micronaut.data.intercept.DataIntroductionAdvice.intercept(DataIntroductionAdvice.java:97)
Этот класс является классом, который нужно смоделировать
@Repository
interface RepositoryHibernate: CrudRepository<Entity, Long>
Это класс высмеивают
@Replaces(RepositoryHibernate::class)
abstract class RepositoryCrudMock: RepositoryHibernate {
val elements = mutableListOf(test1, test2, test3, test4)
override fun findAll(): MutableIterable<Entity> {
return elements
}
override fun findById(id: Long): Optional<Entity> {
return when(id) {
1L -> Optional.of(test1)
2L -> Optional.of(test2)
3L -> Optional.of(test3)
4L -> Optional.of(test4)
else -> Optional.of(Entity())
}
}
}