Technologien: Spring, Hibernate, JSR-303, JQuery
Plattform: Windows
Ich versuche, einen einfachen Aktualisierungsanwendungsfall zu implementieren. Siehe bitte DAO/Dienst/Controller Quellcode Link
Klasse2 enthält viele Eigenschaften, darunter auch Klasse1. Der Class2Controller nutzt Spring, um ein neues Class2-Objekt zu erstellen und HttpRequest-Objektparameter an Class2 zu binden. Anschließend ruft er Service auf, der wiederum DAO aufruft. Welches ist in DAO der effizienteste Weg, dieses neue Class2-Objekt in der Datenbank zu aktualisieren?
Option 1:
-
Derzeit in DAO, rufe ich Class2 Objekt aus der Datenbank.
Class2 class2Persisted = em.find(Class2.class, class2Request.getId());
-
Aktualisieren des abgerufenen Objekts mit den Eigenschaften des Anforderungsobjekts und Übertragen
tx.begin(); class2Persisted.setClass1(class2Request.getClass1()); em.merge(class2Request); tx.commit();
-
Oben habe ich nur eine Eigenschaft mit setClass1 aktualisiert. Aber es gibt viele Eigenschaften in Class2, die aktualisiert werden müssen. Gibt es eine andere effiziente Möglichkeit, class2Persisted mit class2Request auf Objektebene zusammenzuführen, anstatt auf jeder Eigenschaftsebene?
Option 2
-
Class2Controller soll das class2Persisted-Objekt abrufen und Spring auffordern, Parameter zu binden.
-
Mir wurde klar, dass Option 2 nicht in Frage kommt. Bitte beachten Sie ein anderes Problem lien auf die ich zuvor gestoßen bin. Hibernate versucht, verknüpfte Objekte zu laden und wirft
EntityNotFoundException
ohne meine benutzerdefinierte Einschränkung@IdMustExist
eine Chance zur Validierung zu bekommen.
Wenn Sie andere Vorschläge haben, schlagen Sie sie bitte vor.