Интерфейс репозитория Micronaut с аннотацией Replace - PullRequest
0 голосов
/ 29 марта 2020

У меня есть реализация репозитория типа 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())
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...