Метод Java Service Layer - первичный ключ или аргументы объекта гибернации?Что более идиоматично при использовании Spring Boot? - PullRequest
0 голосов
/ 03 декабря 2018

Если вы используете Java (Spring Boot), представьте, что в службе есть один метод: updateCompanyName

Какая сигнатура метода является более идиоматической в ​​СЛУЖЕБНОМ СЛОЕ приложения Spring Boot:

......

updateCompanyName (компания компании, String newName);

-или-

updateCompanyName (Long companyID, String newName);

......

Другими словами, должен ли контроллер гидратировать объект из DAO и передавать объект гибернации на уровень обслуживания, или если уровень обслуживания ожидает первичный ключи гидратировать сущность из спящего режима?

1 Ответ

0 голосов
/ 03 декабря 2018

Как правило, в многоуровневой архитектуре контроллер (из уровня представления) извлекает данные (т. Е. CompanyID) из входных данных (т. Е. Тела запроса) и вызывает службу Application, передавая эти данные.

Служба приложений загружает агрегат из репозитория, вызывает соответствующий метод и затем сохраняет агрегат обратно в репозиторий.Эта служба приложений выглядит тонкой, без бизнес-логики (которая входит в совокупность).

Итак, в вашем случае ответ таков: Контроллер вызывает updateCompanyName(Long companyID, String newName); в службе приложений.

...