Ich muss Domain-Objekt (DO) in DB speichern.Domain-Objekt zu persistierenden Einheit Konvertierung
Der einfachste Ansatz ist in DO Definition einiger JPA Annotationen wie @Entity
, @SequenceGenerator
, @Table
usw. hinzufügen, aber ich will nicht mit einer anderen Konzeption DO mischte wie persistierenden. Also verwende ich ein separates DTO-Objekt und setze hier Anmerkungen.
Da ich ein großer Domain Driven Design Anhänger bin, verbinde ich nicht direkt mit DB und verwenden Repository
Muster. Wenn ich in Zukunft von RDBMS zu z.B. NoSQL alle Änderungen werden nur im Repository durchgeführt und mein DO wird intakt sein.
So ist die Flusssequenz ist
DO -> Repository -converting-> DTO -> DB
Da meine DO viele Felder hat der Umwandlungsschritt recht umständlich ist und zugleich ganz trivial: bekomme fieldA von DO und lege es in fieldA 'in DTO (mit einfachen Transformationen in einigen Fällen). Momentan mache ich das manuell in einem separaten Transformer
.
Was sind andere (bessere?) Ansätze, um diesen Umwandlungsschritt zu machen?
UPDATE
Good comparison von bean-Mapping-Frameworks Dozer vs Orika vs Manuelle Feldzuordnung Ansatz
Scheint wie übertriebene Technik. – Everv0id
@ Everv0id können Sie einen besseren Ansatz vorschlagen? –
Es scheint, dass orm Mapper forfor sind, es sei denn, es gibt etwas in dir db, das das dto-Objekt garantiert. Aber dann wirst du kein 1-1-Mapping mehr haben (und du kannst es immer neu entwerfen, dann brauchst du das. YAGNI gilt auch hier) – Batavia