Robię update encji, powiedzmy że mam dane które przychodzą z forma (updatedData) i dane które juz są w bazie (currentData). Jak teraz sprawdzić które dane się zmieniły ale nie sprawdzając/porównując po kolei wszystkich pól bo jest ich dość dużo - czy w ogóle istnieje taka jakaś magiczna metoda na to?
Jak sprawdzić co się zmieniło w aktualizowanej encji
- Rejestracja: dni
- Ostatnio: dni
- Rejestracja: dni
- Ostatnio: dni
- Postów: 159
Zainteresuj się Hibernate Envers.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 1912
Formularz (frontend) może oznaczyć to jakoś w DTO. Unikaj integracji bezpośrednio poprzez gole encje.
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Space: the final frontier
- Postów: 26433
Jak poszukasz java object diff to znajdziesz trochę bibliotek do tego, ale mam wątpliwości czy to dobra metoda.
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Wrocław
- Postów: 13042
Jak teraz sprawdzić które dane się zmieniły ale nie sprawdzając/porównując po kolei wszystkich pól bo jest ich dość dużo - czy w ogóle istnieje taka jakaś magiczna metoda na to?
IMO powinien zajmować się tym front - jesteś wtedy zabezpieczony przed sytuacją w stylu:
- użytkownik A otwiera formularz
- użytkownik B otwiera formularz
- użytkownik A wprowadza zmiany i zapisuje formularz
- użytkownik B wprowadza zmiany i zapisuje formularz... nadpisując poprzednie zmiany
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Stacktrace
- Postów: 6823
Pytanie, jaki problem chcesz rozwiązać? Najprawdopodobniej nie potrzebujesz takiego sprawdzenia.
Co do propozycji przerzucenia tego na front, to jest ona o tyle dobra, że stosunkowo prosta (hasło Google dirty form), ale całkowicie pozbawiona racji bytu w przypadku, gdy zależy ci na bezpieczeństwie danych wejściowych.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 3561
Poczytaj o optimistic locking i pesimistic locking
- Rejestracja: dni
- Ostatnio: dni
- Postów: 2384
Wydaje mi się, że sprawdzanie "czy dane się zmieniły", to jakaś porażka projektowa. Powinieneś myśleć w kategoriach wykonywanych operacji, których efektem jest modyfikacja danych.
(np. zgłoś szkodę, zmień adres, utwórz zamówienie, potwierdź zamówienie, wyślij potwierdzenie, dodaj zdjęcie, dodaj komentarz etc.).
Zakładam, że jak masz jakieś dane, tzn. że jakaś aktywność się zakończyła (dane skądś się wzięły), ale pewnie nie wiesz jaka to była aktywność i próbujesz zrozumieć co się wydarzyło, analizując stan przed i po. Im więcej ścieżek zmian, tym taka logika będzie bardziej złożona. Jeśli źle rozumuję, to po co chcesz określać co uległo zmianie?