Grails und mysql Batch-Verarbeitung
-
26-09-2019 - |
Frage
Ich versuche, die Beratung in diese große Blog-Post für die Stapelverarbeitung in Grails mit MySQL . Das Problem, das ich habe, ist, dass die Aufnahme von regelmäßigen Anrufen session.clear () in meiner Schleife verursacht org.hibernate.LazyInitializationException die geworfen werden. Es ist ein Zitat nach unten in den Kommentaren auf der Seite:
Sie sind zweiten Punkt über potenziell LIES verursacht, ist absolut wahr. Wenn Sie tun andere Dinge außerhalb mit dem aktuellen Thread importieren, Sie sicherstellen möchten, wieder zu befestigen alle Objekte, auf die Sitzung nach Sie Ihr Clearing tun.
Aber wie mache ich das? Kann mir speziell jemand helfen verstehen, wie alle Objekte auf die Sitzung“wieder anbringen, nachdem ich getan Lichtung bin?
Ich bin auch in Parallelisierung die Datenbank Einfügeprozess interessiert, so dass ich Vorteil, dass ein Multi-Core-Prozessor zu nehmen. Kann Beratung über jemanden geben, wie das in Grails zu tun?
Lösung
Grails hat ein paar Methoden, um Hilfe bei dieser (sie Hebelwintern unter der Decke).
Wenn Sie ein Objekt wissen gelöst ist, können Sie die anhängen Verfahren zur erneuten Verbindung.
Wenn Sie Änderungen an dem Objekt vorgenommen haben, während es detatched wurde, können Sie merge .
Wenn aus irgendeinem Grund Sie nicht sicher sind, ob ein Objekt an die Sitzung gebunden ist, können Sie die link text Methode, um herauszufinden, ob es oder nicht.
Es könnte sich auch lohnen Überprüfung der Hibernate Dokumentation auf Session .