JpaRepository "Нет свойства saveAll для типа" с множественным наследованием интерфейса - PullRequest
0 голосов
/ 26 февраля 2020

Я пытаюсь использовать JpaRepositories как одну стратегию в шаблоне стратегии. В будущем я хочу легко переключаться между локальными / тестирующими репозиториями (JPA) и соединениями с базами данных live / prod (OData). Чтобы добиться этого, я создал интерфейс БД для каждой сущности, такой как:

interface EventAppointmentDBInterface {

    fun save(eventAppointment: EventAppointment): EventAppointment
    fun saveAll(eventAppointments: List<EventAppointment>): List<EventAppointment>
    fun count(): Long
    fun getOne(appointmentId: Long): EventAppointment
    ...
}

Контекст, в котором он используется:

@Service
class EventAppointmentDB(repositoryManager: RepositoryManager) {
    var strategy: EventAppointmentDBInterface? = null

    init {
        repositoryManager.initEventAppointmentDB(this)
    }

    fun save(eventAppointment: EventAppointment): EventAppointment {
        return strategy!!.save(eventAppointment)
    }

    fun saveAll(eventAppointments: List<EventAppointment>): List<EventAppointment> {
        return strategy!!.saveAll(eventAppointments)
    }
    ...
}

и один из «реализованных» (все еще Стратегия Интерфейса): JpaRepository

interface EventAppointmentRepository : JpaRepository<EventAppointment, Long>, EventAppointmentDBInterface {...}

раньше она работала просто отлично, пока я не добавил метод saveAll в EventAppointmentDBInterface. Теперь выдает следующую ошибку:

org.springframework.data.mapping.PropertyReferenceException: No property saveAll found for type EventAppointment!

Может кто-нибудь указать на мою ошибку? Насколько я посмотрел, List реализует Iterable, поэтому не должно быть никаких ошибок типов относительно заголовков методов, не так ли? JPA saveAll имеет следующую (Java) подпись:

<S extends T> List<S> saveAll(Iterable<S> entities)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...