Ich habe eine Million Beispiele von DAOs gesehen, und größtenteils implementieren sie alle Ihre grundlegenden CRUD-Operationen für einzelne Entitäten, mit vielleicht ein paar Methoden, die Listen zurückgeben (z.B. List getCustomers()).Sind Methoden, die mehrere Entitäten aktualisieren, normalerweise nicht Teil eines DAO?
Allerdings habe ich noch nie ein Beispiel gesehen, in dem es eine Methode gibt, die mehrere Entitäten aktualisiert, löscht oder erstellt, wie: void update (List).
Sind Methoden, die mehrere Entitäten aktualisieren, normalerweise nicht Teil eines DAO, oder werden sie in Beispielen nur selten verwendet? Ich habe eine Anforderung, in der ich einige Stapel einfügen muss, und den Aufruf von myDAO.create() hundert Mal ist nicht sehr effizient.
Ich möchte nur sicherstellen, dass ich nicht etwas vermisse, bevor ich weitermachen und tun, was offensichtlich erscheint.
Hm, es scheint, als müsste ich in meiner DAO noch eine Methode haben, die eine Liste aufnehmen kann, damit ich ein korrektes Batch-Update implementieren kann. Ich könnte den Stapel immer noch in meiner Service-Methode aufteilen und alles unter der gleichen Transaktion ausführen, ja? – Boden
Nein, ich schlage vor, dass DAO immer noch eine einzelne Objektinstanz benötigt, und der Dienst würde DAO in einer Schleife aufrufen (oder Schleifen, wenn Sie es "chunking"). Die Servicemethode wäre eine einzelne Arbeitseinheit, die die Transaktion besitzen würde. Der Dienst könnte die Transaktion auch stapelweise durchführen, um den Netzwerkverkehr zu reduzieren. – duffymo
Wie würde das funktionieren? Wenn ich zum Beispiel JDBC verwenden würde, wäre ich nicht in der Lage, executeBatch im Dienst zu verwenden ... Ich würde im Grunde eine ganze Reihe von regelmäßigen Updates begehen. – Boden