Das folgende Grails-Skript:
// Import.groovy
includeTargets << grailsScript("Bootstrap")
target(main: "Import some data...") {
depends(bootstrap)
def Channel = grailsApp.classLoader.loadClass("content.Channel")
def c
// works: saving a valid Channel succeeds
c = Channel.newInstance(title:"A Channel", slug:"a-channel", position:0).validate()
// doesn't work: saving an invalid Channel fails with exception
c = Channel.newInstance().validate()
// this line is never reached due to exception
println(c.errors)
}
setDefaultTarget(main)
scheitert mit der Ausnahme:
Fehler beim Ausführen des Skripts Import: org.hibernate.HibernateException: Keine an einen Thread gebundene Hibernate-Sitzung, und die Konfiguration lässt die Erstellung einer nicht-transaktionalen Sitzung nicht zu
wenn validate() für ein ungültiges Domänenobjekt aufgerufen wird. Ich würde gerne die Fehlermeldungen ausgeben, wenn die Validierung fehlschlägt, aber es scheint, dass ich eine Hibernate-Sitzung einrichten muss, um dies zu tun. Kennt jemand einen Weg, dies zu umgehen?