Замена объекта в базе dto> data
Всем привет , перейду сразу к сути. У нас есть Письмо которое приходит с фронта в виде DTO(letterDto) у письма есть куча полей(атрибутов) и есть пару полей коллекций
List<DocumentSetRevisionDTO> documentsInfo;
List<ProtocolRevisionDTO> protocolsInfo;
List<LetterDTO> replyLettersInfo;
в базе лежит такое же письмо LetterData, нужно в зависимости от сценария(их всего 4) подружить нашу дату с дто. сценарии:
- к нам приходит пустое письмо и в базе пусто- ничего не делаем.
- к нам приходит пустое письмо а в базе уже лежит письмо с таким же id, мы отвязываем все связи(коллекции).
- приходит письмо с данными, в базе пусто, прямой позитивный сценарий, просто записываем его в базу.
- приходит письмо с данными и в базе лежит тоже письмо с данными. т.е. нам нужно подготовить базу для слияния что бы положить туда обновленную дто. самый очевидный вариант взять letterData проверить есть ли в letterDTO эти связи, если совпадают то убрать их из письма(letterDto) и оставить в базе, получается готовая база, и оставшиеся связи положить в базу. собственно застрял на реализации последнего (4) алгоритма