Etwas wird nicht gespült. Ein vereinfachtes Beispiel dafür, was geschieht:Grails, GPars und Datenpersistenz
def testDemo() {
def person = new Person(...)
person.save(flush: true)
println "Number of people after save: " + Person.all.size()
def dummyList = [1, 2, 3, 4, 5]
GParsPool.withPool { num ->
println "Number of people after withPool: " + Person.all.size()
dummyList.eachParallel {
println "Number of people after eachParallel " + Person.all.size()
Person.withTransaction {
...
Diese Ausgänge:
Number of people after save: 1
Number of people after withPool: 1
Number of people after eachParallel: 0
Ich verstehe nicht, wenn ich etwas mit Session und Transaktion tun müssen, um die Daten zu machen anhalten oder wenn dies ein Fehler ist in GPars. Was passiert hier auf der zugrunde liegenden Hibernate-Ebene?
Ich möchte die kürzlich erstellte Person innerhalb der parallelen Schließung sichtbar sein.
Wie haben Sie das überwunden? @Alison – Ramisetti