есть 2 сущности для работы с соответствующими табличками:
Гараж и Машина
Для работы с нашими сущностями написаны сервисы, в которых есть обычные круд методы: create/update/delete. Ну и контроллеры соответствующие.
Поступила задача: В гараже могут стоять различные машины.
Необходимо по id гаража находить все машины, которые в нем стоят
Создаём табличку связей и сущность под неё:
GarageHasCars
метод в соответствующем репозитории: List<Garage> findCarsByGarageId(Long GarageId)
Теперь вопрос, в каком сервисе я буду дергать этот метод с репозиторием? и в каком контроллере буду дергать потом этот сервис?)
GarageService and GarageController
или
CarService and CarController
или вообще надо будет создать новые сервисы и контроллеры?
GarageHasCarService and GarageHasCarController
1. Логически лучше размещать в GarageService и GarageController 2. Почему метод возвращает лист гаражей, а не машин?
Нужно немного больше информации о других предполагаемых запросах. Потому что выглядит, что подходят два способа: /api/cars?garageId=123 /api/garages/123 И уже от этого зависит, какие будут Controllers и Services и где что использовать :)
сорян опечатался
а такой варик не подходит?) или вообще надо будет создать новые сервисы и контроллеры? GarageHasCarService and GarageHasCarController
Зачем новые контроллеры то, вот тебе два варианта
Определись что является твоим основным ресурсом: Garage или Car. Если большинство твоих запросов будут связанны с Car, Тогда создай: CarController и CarService (он использует CarRepository, который и будет тебе доставать всю информацию). P.S.: GarageHasCar - плохое название. Ты ведь манипулируеш моделью аггрегирующую что-то внутри себя и не нужно прописывать это явно.
Обсуждают сегодня