Я делаю приложение с весенней загрузкой, и я ищу, чтобы обновить существующую запись в БД через мой сервис и контроллер. В моем слое обслуживания у меня есть метод ниже. Поэтому я извлекаю поля, связанные с caseID, создаю модель сопоставления, которая сопоставляет мой класс объекта сущности с моим VO, а затем сопоставляет полученные данные с моим DTO. Затем я сохраняю свой репозиторий. Цель состоит в том, чтобы добавить только те поля, которые я указал в своем сообщении req, т.е. если я хочу обновить только 1 поле из 20, оно обновляет это поле, а остальное остается нетронутым. Нижеследующее успешно выполняется, но поле, указанное в моем сообщении с запросом в почтальоне, не обновляется в БД. Почему это? Я попытался отобразить разные объекты и сохранить разные переменные в хранилище, но, похоже, ничего не обновляет БД.
public StoredOutboundErrorCaseVO updateCase(OutboundErrorCaseVO outboundErrorCaseVO, Long caseNumber) {
OutboundErrorCaseData existingCaseData = ErrorCaseDataRepository.findById(caseNumber).get();
ModelMapper mm = new ModelMapper();
mm.getConfiguration().setAmbiguityIgnored(true);
OutboundErrorCaseData uiOutboundErrorCaseData = mm.map(outboundErrorCaseVO,
OutboundErrorCaseData.class);
mm.map(existingCaseData, uiOutboundErrorCaseData);
ErrorCaseDataRepository.save(uiOutboundErrorCaseData);
return mm.map(uiOutboundErrorCaseData, StoredOutboundErrorCaseVO.class);
}
Контроллер - код для краткости опущен, метод POST (я обычно использую PUT для обновлений, но я все еще могу использовать POST)
StoredOutboundErrorCaseVO updatedCase = outboundErrorService.updateCase(outboundErrorCaseVO,
caseNumber);
Repo
@Repository
public interface OutboundErrorCaseDataRepository extends JpaRepository<OutboundErrorCaseData, Long> {