DTO aus mehrere Entitäten erstellen

A

Avalon

Aktives Mitglied
Hallo, ich habe mehrere Entitäten per @ManyToOne Annotation in Relation gesetzt (Spring Boot, Maven, JPA usw.). Wie bekomm ich es jetzt hin, aus den gesammelten Daten ein DTO Objekt zu erstellen (ich brauch ja nicht alles von allen Entitäten)? Im Moment habe ich von allen Entitäten die ich brauche alle Attribute als Rückgabewert als Json Format (Get Request).
 
mrBrown

mrBrown

Super-Moderator
Mitarbeiter
Naja, du definiertst du deine DTO-Klasse so, wie du sie brauchst, und erstellst dann Objekte davon, bei DTOs ist wirklich keinerlei Magie im Spiel. Oder zielt deine Frage auf irgendwas bestimmtes ab?
 
A

Avalon

Aktives Mitglied
Ah. Hallo mrBrown. Ich habe eine Entität sagen wir mal "Auftragskopf". Darin habe ich, per @ManyToOne Annotation, Beziehungen über Fremdschlüssel zu den Entitäten "Auftrag", "Auftragsposition", "Kunde", "Produkt" hergestellt. Wenn jetzt ein Get-Request an den Endpunkt im Controller kommt, bekomme ich einen vollständigen Datensatz aller in Beziehung stehender Entitäten (JSON Format) mit sämtlichen Variablen aus der Datenbank. Den will ich in ein DTO konvertieren, da ich nicht alle Daten benötige. Bei einer einzelnen Entität ist das ja nicht so wild. Da lass ich dann einfach die Variablen weg, die ich nicht brauche, oder ignoriere sie per mapstruct, so daß ich gar kein DTO benötige. Aber hier ist das anderes. In einem JSON ist alles komplett drin. Und hab keinen Schimmer, wie ich da ein DTO draus machen kann. Irgendwie fehlt mir da der entscheidende Gedanke, der wo es klick macht. :-D

Java:
@GetMapping(path = "/auftragskopf/{id}"

und zurück bekomme ich dann auftragskopf, auftrag, auftragsposition, kunde, produkt in einem einzigen JSON Objekt.
 
Zuletzt bearbeitet:
mrBrown

mrBrown

Super-Moderator
Mitarbeiter
Vergiss erstmal JSON und so, das ist jalles rein auf Java-Ebene.

Ein DTO ist einfach nur ein ganz normales Java-Objekt, ohne irgendwelche Magie. Du erstellst einfach für deine Controller-Methode Klassen, die ganz das enthalten, was dieser Endpunkt zurückgeben soll.

Wenn das zB ein Auttragskopf mit unr Kunde und Auftrag ist, dann legst du eine AuttragskopfDTO an, was dann KundeDTO und AuftragDTO nutzt, und alle Klassen enthalten jeweils nur das, was benötigt wird.

Da lass ich dann einfach die Variablen weg, die ich nicht brauche, oder ignoriere sie per mapstruct, so daß ich gar kein DTO benötige.
Wie lässt du denn Dinge weg und wohin mappst du die Entity mit MapStruct, wenn du kein DTO nutzt?
 
A

Avalon

Aktives Mitglied
Wenn das zB ein Auttragskopf mit unr Kunde und Auftrag ist, dann legst du eine AuttragskopfDTO an, was dann KundeDTO und AuftragDTO nutzt, und alle Klassen enthalten jeweils nur das, was benötigt wird.
Danke. Nach ewigem hin- und her grübeln, hatte ich es dann auch. o_O

Wie lässt du denn Dinge weg und wohin mappst du die Entity mit MapStruct, wenn du kein DTO nutzt?
Java:
@Mapper
public interface PersonMapper {

    @Mapping(target="id", ignore = true)
    Person map(Person source);
}

Hab ich von hier:

Wie man DTOs vermeidet
 
mrBrown

mrBrown

Super-Moderator
Mitarbeiter
Java:
@Mapper
public interface PersonMapper {

    @Mapping(target="id", ignore = true)
    Person map(Person source);
}

Hab ich von hier:

Wie man DTOs vermeidet

Der Artikel und der Code ist ein ziemliches Negativbeispiel, sowohl der Code als auch die Erklärung dazu.


Die eigentliche Stärke von Mapstruct liegt ja grad in der Benutzung zusammen mit DTOs. Mapstruct anstatt DTOs zu nutzen, ist völliger Unsinn.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Mehrere PNG-Files in einer Datei Allgemeine Java-Themen 9
H Mehrere Datentypen in einer Arraylist speichern Allgemeine Java-Themen 9
Curtis_MC Collections Liste anhand mehrere Kriterien sortieren Allgemeine Java-Themen 6
bueseb84 Git : Mehrere Server verwenden Allgemeine Java-Themen 3
L Mehrere .Jar Files aufrufen Allgemeine Java-Themen 9
L mehrere Methoden Allgemeine Java-Themen 19
W Variablenübergabe über mehrere Klassen Allgemeine Java-Themen 4
B StAX Parser - mehrere Methoden, ein XML Allgemeine Java-Themen 4
T String mehrere Worte Allgemeine Java-Themen 2
N Bei Mouse Events nicht mehrere Objekte erstellen Allgemeine Java-Themen 13
J Variablen Mehrere int-variablen in txt abspeichern und danach wieder auslesen Allgemeine Java-Themen 1
S JTable - mehrere ausgewählte Rows in ArrayList Allgemeine Java-Themen 5
H Java FX 2 Fragen um Programm in mehrere sprachen zu übersetzen in Gluon Framwork Allgemeine Java-Themen 3
F Listen - Mehrere Objekte Allgemeine Java-Themen 1
R Variable durch mehrere Methoden ändern und nutzen Allgemeine Java-Themen 17
S libGDX mehrere Texturen zu Einer zusammenfassen Allgemeine Java-Themen 0
X Mehrere booleans in Datei Speichern, Updaten und Laden Allgemeine Java-Themen 1
NicoDeluxe CSV parsen mehrere Zeilen Allgemeine Java-Themen 22
K Mehrere Programmiersprachen gleichzeitig lernen Allgemeine Java-Themen 3
C Mehrere Seiten drucken in Hoch- und Querformat Allgemeine Java-Themen 0
perlenfischer1984 Mehrere Komponenten erstellen Allgemeine Java-Themen 3
F AWT Mehrere Tastatureingaben verarbeiten Allgemeine Java-Themen 5
J Mehrere Wörter getrennt in eine Array einlesen, wie ? Allgemeine Java-Themen 7
HarleyDavidson Best Practice Integer-Zahlenfolge über mehrere Programmstarts Allgemeine Java-Themen 7
F Mehrere JTables' drucken Allgemeine Java-Themen 0
2 mehrere Json Werte Parsen Allgemeine Java-Themen 3
stylegangsta Mehrere html seiten einer Homepage einlesen und als Textdatei ausgeben Allgemeine Java-Themen 14
P Mehrere Java Versionen auf dem Rechner Allgemeine Java-Themen 3
B JAVA - mehrere Clienten gleichzeitig starten. Nicht bei Code! Allgemeine Java-Themen 3
S PrintWriter.println() schreibt mehrere Zeilen Allgemeine Java-Themen 19
2 Mehrere Uhrzeiten Sortieren Allgemeine Java-Themen 2
T Jsoup: Mehrere Links nacheinander parsen Allgemeine Java-Themen 11
T Schlüsselworte mehrere public-Klassen in einem Paket Allgemeine Java-Themen 7
E Lesen von mehrere Csv-Datei und ihre Inhalte vergleichen Allgemeine Java-Themen 3
K GUI-Entwicklung - Dispose, enabling und mehrere Controller Allgemeine Java-Themen 1
M Eclipse Mehrere Threads, mehrere Konsolen Allgemeine Java-Themen 4
A Threads Lock über mehrere Abschnitte in verschiedenen Methoden Allgemeine Java-Themen 5
H Mehrere Bilder aus einer Datei lesen Allgemeine Java-Themen 2
B Mehrere Objekte verschlüsselt serialisieren Allgemeine Java-Themen 6
S Tool um mehrere Klassen in einer Klasse vereinen? Allgemeine Java-Themen 6
K Mehrere Arrays auf einmal erstellen Allgemeine Java-Themen 2
R ListIterator über mehrere Arrays Allgemeine Java-Themen 13
J JFreeChart - Mehrere X-Achsen Einteilungen Allgemeine Java-Themen 3
S Mehrere Shapes "malen" Allgemeine Java-Themen 3
M Input/Output Mehrere Bilder aus Resourcen auslesen Allgemeine Java-Themen 8
J Erste Schritte Mehrere Mauszeiger für Ping Pong Game Allgemeine Java-Themen 7
P Mehrere MP3s abspielen Allgemeine Java-Themen 3
M Mehrere CRLF entfernen Allgemeine Java-Themen 13
F Mehrere Threads - ein Stack Allgemeine Java-Themen 6
K Mehrere JVMs die auf eine Klasse mit statischen Variablen zugreift Allgemeine Java-Themen 19
B JUnit und mehrere Instanzen der selben Applikation Allgemeine Java-Themen 4
G mehrere Threads starten/stoppen Allgemeine Java-Themen 4
A Email versenden mehrere Zeilen Allgemeine Java-Themen 10
D Mehrere String-Werte in eine Tabellen-Zelle schreiben Allgemeine Java-Themen 8
R JTree - Mehrere Roots Allgemeine Java-Themen 6
Beckenbauer Mehrere Paragraphe in eine Word Datei schreiben Allgemeine Java-Themen 4
H Mehrere Anwendungen von Java kontrollieren lassen Allgemeine Java-Themen 10
T Edit: JLabel+MouseListener oeffnet mehrere Instanzen Allgemeine Java-Themen 5
O split mit einem ODER mehrere Tabulatoren oder Leerzeichen Allgemeine Java-Themen 6
M JFreeChart mehrere PieCharts erstellen Allgemeine Java-Themen 2
S Wie kann ein Observer mehrere Observables beobachten? Allgemeine Java-Themen 9
T Synchronisation von Listen bei Zugriffen durch mehrere Prozesse Allgemeine Java-Themen 15
D befehl auf mehrere objekte anwenden Allgemeine Java-Themen 7
B mehrere services in einem client Allgemeine Java-Themen 10
Meldanor Speichern der Datenbank - Lohnen sich mehrere Threads? Allgemeine Java-Themen 2
G Process - mehrere Commands?! Allgemeine Java-Themen 2
O Mehrere Exemplare(Kopieen) drucken Allgemeine Java-Themen 2
S log4j Logging über mehrere Klassen Allgemeine Java-Themen 13
F 1 Key - mehrere Values Allgemeine Java-Themen 3
G JOGL mehrere GLCanvas erstellen Allgemeine Java-Themen 2
S Mehrere Listen ineinander verschachteln Allgemeine Java-Themen 22
P Java3D mehrere Ebenen parallel zu yz-Ebene Allgemeine Java-Themen 9
R mehrere jar Dateien kompinieren Allgemeine Java-Themen 14
P Mehrere Instanzen der selben Appl. verhindern Allgemeine Java-Themen 12
M Scanner-Methode: Mehrere Eingaben mit Exception behandeln Allgemeine Java-Themen 10
I Wie kann ich mehrere Mp3 Tags ausgeben? Allgemeine Java-Themen 6
I Mehrere MP3 Dateien einlesen? Allgemeine Java-Themen 3
G String.replaceall - mehrere Zeichen durch eines ersetzen Allgemeine Java-Themen 5
C ArrayList sortieren (mehrere Kriterien) Allgemeine Java-Themen 6
N mehrere klassen extenden Allgemeine Java-Themen 33
G Oracle will mehrere hundert Produkte patchen Allgemeine Java-Themen 5
F Logger in mehrere Dateien mit log4J Allgemeine Java-Themen 4
W Properties-Klasse: mehrere Parameter-Belegungen übergeben? Allgemeine Java-Themen 2
Daniel_L Mehrere (XML-)Datei aus einer ZIP-Datei auslesen Allgemeine Java-Themen 4
V Mehrere main() in jar, wie starten? Allgemeine Java-Themen 4
A Problem: Mehrere PDF-Files nacheinander Öffnen Allgemeine Java-Themen 12
D Mit Linux mehrere Kommandos in einem Subprozeß Allgemeine Java-Themen 3
D Suche sowas wie Map nur für mehrere Werte Allgemeine Java-Themen 13
V JFilechooser, mehrere Datein selektieren und Reihenfolge? Allgemeine Java-Themen 2
G mehrere Threads verwalten? Allgemeine Java-Themen 14
K Applet dass auf mehrere Bibliotheken zugreift Allgemeine Java-Themen 13
F mehrere Verzeichnisse als Parameter Allgemeine Java-Themen 15
G mehrere url's in ein array (problem mit // ) Allgemeine Java-Themen 7
P mehrere super klassen Allgemeine Java-Themen 10
D mehrere Programme miteinander kommunizieren lassen Allgemeine Java-Themen 12
N mehrere befehle im cmd Allgemeine Java-Themen 3
B KeyListener auf mehrere TextFields anwenden Allgemeine Java-Themen 5
J Mehrere CPUs gleichzeitig ansprechen Allgemeine Java-Themen 4
MQue addActionListener für mehrere Buttons Allgemeine Java-Themen 2
F Problem: mehrere Interfaces definieren equals() neu Allgemeine Java-Themen 24

Ähnliche Java Themen

Anzeige

Neue Themen


Oben