2014-09-26 45 views
1

我試圖在Grails控制檯中運行GORM方法(運行命令grails console後)。我正在使用Grails 2.3.11。這是我從控制檯運行的代碼:Grails GORM在Grails控制檯中拋出錯誤

import com.company.dualenroll.registration.DualEnrollStudent 

DualEnrollStudent.list() 

我希望這可以毫無問題地工作,但會引發異常。值得注意的是,DualEnrollStudent域類來自內聯插件。這裏是堆棧跟蹤:

java.lang.IllegalStateException: Method on class [com.company.dualenroll.registration.DualEnrollStudent] was used outside of a Grails application. If running in the context of a test using the mocking API or bootstrap Grails correctly. 
    at com.company.dualenroll.registration.DualEnrollStudent.currentGormStaticApi(DualEnrollStudent.groovy) 
    at com.company.dualenroll.registration.DualEnrollStudent.list(DualEnrollStudent.groovy) 
    at com.company.dualenroll.registration.DualEnrollStudent$list.call(Unknown Source) 
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112) 
    at ConsoleScript0.run(ConsoleScript0:3) 
    at groovy.lang.GroovyShell.runScriptOrMainOrTestOrRunnable(GroovyShell.java:257) 
    at groovy.lang.GroovyShell.run(GroovyShell.java:481) 
    at groovy.lang.GroovyShell.run(GroovyShell.java:163) 
    at groovy.lang.GroovyShell$run$1.call(Unknown Source) 
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124) 
    at groovy.ui.Console$_runScriptImpl_closure17.doCall(Console.groovy:954) 
    at groovy.ui.Console$_runScriptImpl_closure17.doCall(Console.groovy) 

回答

1

確保您從應用程序文件夾運行「grails控制檯」。而且你也需要內運行代碼:

DualEnrollStudent.withTransaction { status -> // your code here }

,否則你將得到一個異常告訴你,你有沒有一個Hibernate的Session初始化。