Имеется два слоя DAO:
1. Слой `TagDao` с методом `Optional findByName(String tagName) {...}`
1. Слой `GiftCertificateDao` с методом `Set findByTag(Tag tag) {...}`
В сервисе я составил метод для получения подарочного сертификата (GiftCertificate) по тегу (Tag):
@Override
public Set<GiftCertificateDto> findByTagName(String tagName) {
Tag tag = tagDao.findByName(tagName)
.orElseThrow(() -> new EntityNotFoundException(MESSAGE_ENTITY_NOT_FOUND_EXCEPTION));
return giftCertificateDao.findByTag(tag).stream()
.map(giftCertificate -> modelMapper.map(giftCertificate, GiftCertificateDto.class))
.collect(Collectors.toSet());
}
Теперь не понимаю, как объединить эти два стрима в один. Как я пробовал: сначала пытался выбросить исключение вызовом метода ` .orElseThrow()`, но это "завершающий" метод, после которого нельзя вызывать, например, `map()`.