Какой базовый метод переопределяется в ReactiveMongoRepository «Существует, введя» вызов метода?

spring #mongodb #kotlin #spring-data-jpa #mongodb-query

#spring #mongodb #kotlin #spring-data-jpa #mongodb-запрос

Вопрос:

Я работаю с репозиторием в приложении Kotlin / springboot, которое расширяет ReactiveMongoRepository<T,ID>, и я запутался в используемом методе. В приведенном ниже примере это вызов

PersonRepository.existsByNamesIn(список (имя))

это меня смущает. Нигде в документации для ReactiveMongoRepository<T,ID> или в других суперинтерфейсах я не вижу метод, который выглядит как existsBy «Type» In() . Откуда берется возможность использовать этот запрос? Я просто пытаюсь понять немного больше о том, как использовать запросы таким образом.

Например, если у меня есть такой интерфейс, как:

 interface PersonRepository : ReactiveMongoRepository<Person, String> {
    fun existsByNamesIn(names: List<String>): Mono<Boolean>
}
 

а затем какой-нибудь менеджер, такой как

 @Component
class PersonManager(
    private val personRepository: PersonRepository
) {
    fun existsByName(name: String): Mono<Boolean> {
        return personRepository.existsByNamesIn(listOf(name))
    }
}
 

и класс модели, такой как

 @TypeAlias("person")
@Document
data class Person(
    @Indexed
    val names: List<names>
    val id: String,
)
 

Комментарии:

1. Из этой статьи похоже, что он исходит из Spring data JPA, но я все еще немного смущен тем, откуда берется функциональность.