Guten Abend zusammen
Ich baue gerade eine Rest API mit Java (11) und Spring Boot und hadere seit Stunden mit dem gleichen Problem/Frage.
Ich habe POJO's für die Request Body's und DTO's für die Übergabe der Daten zwischen API und Business Layer. Der Service im Business Layer empfängt die DTO's mit folgenden zwei Methoden: `create(UserDTO user)`, `update(Long userId, UserDTO user)`.
Aktuell ist es so, dass ich mittels Mapper aus dem Request Objekt ein DTO erstelle und dieses dann an den Service gebe. Beim `create()` ist es ja ziemlich einfach, da ich dann einfach alle Felder verwende und daraus die Entität auf der DB erstelle.
Knifflig wirds nun beim `update()`. Wie erkenne ich am Besten, welche Felder sich im DTO geändert haben. Soll ich in der Methode im Service zuerst die Entität holen und dann Schritt für Schritt jedes Attribut durchgehen und schauen, ob es nicht gleich ist, oder einfach verschiedene Methoden im Service machen, bei welchen ich dann genau weiss, dass sie z.B. beim UserUpdate Endpoint aufgerufen werden?
Ich baue gerade eine Rest API mit Java (11) und Spring Boot und hadere seit Stunden mit dem gleichen Problem/Frage.
Ich habe POJO's für die Request Body's und DTO's für die Übergabe der Daten zwischen API und Business Layer. Der Service im Business Layer empfängt die DTO's mit folgenden zwei Methoden: `create(UserDTO user)`, `update(Long userId, UserDTO user)`.
Aktuell ist es so, dass ich mittels Mapper aus dem Request Objekt ein DTO erstelle und dieses dann an den Service gebe. Beim `create()` ist es ja ziemlich einfach, da ich dann einfach alle Felder verwende und daraus die Entität auf der DB erstelle.
Knifflig wirds nun beim `update()`. Wie erkenne ich am Besten, welche Felder sich im DTO geändert haben. Soll ich in der Methode im Service zuerst die Entität holen und dann Schritt für Schritt jedes Attribut durchgehen und schauen, ob es nicht gleich ist, oder einfach verschiedene Methoden im Service machen, bei welchen ich dann genau weiss, dass sie z.B. beim UserUpdate Endpoint aufgerufen werden?