Сначала я попытаюсь объяснить возникшую ошибку: CrudRepository
является параметризованным интерфейсом, а наследование от (нескольких) CrudRepository
интерфейсов различных параметризованных типов создает конфликт во время выполнения.
ИМО, то, что вы пытаетесь сделать, контрпродуктивно. Хранилище данных Spring обеспечивает безопасную для типов реализацию методов CRUD во время выполнения, когда вы расширяете CrudRepository
. Это дает вам более чистый код и обеспечивает корректность во время компиляции. И, CrudRepository
уже довольно общий характер - так лучше (на уровне интерфейса, чем в реализации).
Даже если бы вы создали такой репозиторий, вам пришлось бы отказаться от использования CrudRepository
и создать один класс со всеми методами CRUD для всех ваших моделей (например, saveEyeColor, saveHairColor и т. Д.). Может быть, использовать что-то вроде SpringTemplate
. Это не лучший способ сделать это, IMO, так как вы будете смешивать свои доменные объекты, и класс станет кошмаром для обслуживания.
Чтобы ответить на ваш вопрос, да, вам придется внедрить отдельный экземпляр репозитория для каждой модели.