Coś mimo wszystko jest nie tak, gdy wysyłam żądanie w Postmanie z jakimkolwiek polem np. descrption, to dostaje błąd ze nie moge edytować.
A gdy próbuje edytować assignedToOrder na false to bez problemu przechodzi.
Wydaje mi się ze mimo że przesyłam w Postmanie jedno pole to niejawnie idą wszystkie w tym assinedToOrder które domyślnie moze miec false.
Ah, spróbuj tak.
private void applyPatchAndUpdateGoods(GoodsDTO goodsDTO, JsonMergePatch patch) {
JsonNode goodsNode = objectMapper.valueToTree(goodsDTO);
JsonNode patchedGoods = patch.apply(goodsNode);
GoodsDTO patchedGoodsDTO = objectMapper.treeToValue(patchedGoods, GoodsDTO.class);
goodsService.updateGoods(
goodsDTO, // tutaj przekaż aktualną wersję
patchedGoodsDTO
);
}
public void updateGoods(GoodsDTO current, GoodsDTO next){
Goods goods = goodsMapper.mapToEntity(next);
checkingAssignedToOrder(goods);
checkingLabelUnique(next);
if (current.jakieśPole == true && next.jakieśPole == false) {
// tutaj rzuć wyjątek
}
goodsRepository.save(goods);
}