Cześć,
Chciałbym zapytać w jaki elegancki sposób rozwiązalibyście następującą rzecz (design pattern, jakaś podpowiedź etc.).
a) dostajemy w kontrolerze dane pochodzące z formularza i opakowane w obiekt Story
@RequestMapping(value = "/backlog/save", method = RequestMethod.POST)
public String processStoryRequest(@ModelAttribute("story") Story story) {
}
b) Chcemy uaktualnić dane na bazie za pomocą JPA, w tym przypadku za pomocą JpaRepository (Spring)
Problem w tym, że nie chcemy nadpisać danych, które nie są zarządzane przez ten formularz. Formularz pozwala na nadpisanie kilku pól, a wywołanie JpaRepository.save
storyRepository.save(story);
nadpisze NULL-ami dane, które przyszły z formularza.
Wygląda na to, że przydałoby się pobrać obiekt za pomocą metody JpaRepository.findById, a następnie przejechać po nim IF-ami i sprawdzić czy dane się zmieniły za pomocą porównania obiektu otrzymanego JPA z tym, który wpadł jako opakowanie formularza..
Chciałbym zapytać jak to ładniej rozwiązać.