1

Тема: service layer повинен повертати Optional чи просто Entity

Всім привіт, якщо репозиторів повертаж Optional, то сервіс повинен повертати то й ж Optional чи просто об'єкт, а якщо Optional пустий викидати помилку?
Толбто так:

public Author getAuthorById(int id) {
        return authorRepository.findById(id)
                .orElseThrow(() -> new AuthorNotFoundException("there are not author with id " + id));
    }

Чи так:

public Optional<Author> getAuthorById(int id) {
        return authorRepository.findById(id);
   }

2

Re: service layer повинен повертати Optional чи просто Entity

Optional - це інтерфейс, що показує, що об'єкт може бути присутнім чи ні. Що робити з цим далі - це вже логіка конкретного застосунку, тут немає єдиної відповіді. Якщо автор має бути обов'язково - то кидати помилку. Якщо може бути відсутнім - тягнути Optional далі. Є, звісно, ще варіант повернути null, але Optional точно краще. Ну, або придумати якийсь типовий об'єкт, на кшталт "невідомо", і повертати в таких випадках його.

Подякували: Ostapko1