Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
处理GroovyPageView时出错:无法使用下一个使用grails注释事务前进_Grails_Controller_Transactional - Fatal编程技术网

处理GroovyPageView时出错:无法使用下一个使用grails注释事务前进

处理GroovyPageView时出错:无法使用下一个使用grails注释事务前进,grails,controller,transactional,Grails,Controller,Transactional,如果向控制器类添加注释事务,则视图中出现“错误处理GroovyPageView:无法使用next()前进”错误 控制器 @Transactional(readOnly = true) class SomeController { ... def sessionFactory def list(){ def list = sessionFactory.currentSession.createSQLQuery( "some_query" ).scroll(

如果向控制器类添加注释事务,则视图中出现“错误处理GroovyPageView:无法使用next()前进”错误

控制器

@Transactional(readOnly = true)
class SomeController {
    ...
    def sessionFactory

    def list(){
        def list = sessionFactory.currentSession.createSQLQuery( "some_query" ).scroll()

        [ list : list ]
    }
}
查看

...
<g:while test="${ list?.next() }"> <%-- exception here --%>
    <g:set var="instance" value="${ list.get() }"/>
...
以下是全部错误:

2015-04-15 15:22:50,402 [http-bio-8080-exec-8] ERROR errors.GrailsExceptionResolver  - PSQLException occurred when processing request: [GET] /app
This ResultSet is closed.. Stacktrace follows:
Message: Error processing GroovyPageView: could not advance using next()
    Line | Method
->>  257 | doFilter  in \grails-app\views\some\list.gsp

Caused by GenericJDBCException: could not advance using next()
->>  265 | doCall    in list_gsp$_run_closure2
|    291 | run       in list_gsp
|    198 | doFilter  in grails.plugin.cache.web.filter.PageFragmentCachingFilter
|     63 | doFilter  in grails.plugin.cache.web.filter.AbstractFilter
|     53 | doFilter  in grails.plugin.springsecurity.web.filter.GrailsAnonymousAuthenticationFilter
|     49 | doFilter  in grails.plugin.springsecurity.web.authentication.RequestHolderAuthenticationFilter
|     82 | doFilter  in grails.plugin.springsecurity.web.authentication.logout.MutableLogoutFilter
|     76 | doFilter  in org.jasig.cas.client.session.SingleSignOutFilter
|   1145 | runWorker in java.util.concurrent.ThreadPoolExecutor
|    615 | run       in java.util.concurrent.ThreadPoolExecutor$Worker
^    745 | run . . . in java.lang.Thread

Caused by PSQLException: This ResultSet is closed.
->> 2852 | checkClosed in org.postgresql.jdbc2.AbstractJdbc2ResultSet
|   1890 | next      in     ''
|    265 | doCall .  in list_gsp$_run_closure2
|    291 | run       in list_gsp
|    198 | doFilter  in grails.plugin.cache.web.filter.PageFragmentCachingFilter
|     63 | doFilter  in grails.plugin.cache.web.filter.AbstractFilter
|     53 | doFilter  in grails.plugin.springsecurity.web.filter.GrailsAnonymousAuthenticationFilter
|     49 | doFilter  in grails.plugin.springsecurity.web.authentication.RequestHolderAuthenticationFilter
|     82 | doFilter  in grails.plugin.springsecurity.web.authentication.logout.MutableLogoutFilter
|     76 | doFilter  in org.jasig.cas.client.session.SingleSignOutFilter
|   1145 | runWorker in java.util.concurrent.ThreadPoolExecutor
|    615 | run       in java.util.concurrent.ThreadPoolExecutor$Worker
^    745 | run . . . in java.lang.Thread

@Transactional
不应添加到Grails用于生成控制器的模板中。控制器应该很简单,可以与HTTP层一起工作,并调用服务来完成事务性工作和业务逻辑。从控制器中删除所有
@Transactional
注释,并将所有保存、更新和删除移动到一个或多个事务性服务,然后将服务注入控制器中。

跟踪中是否有其他东西表明真正的问题?虽然这里有
readOnly=true
,但您是否尝试过
@Transactional
only(默认为
readOnly=false
)?Tks@cfrick,我用这些信息更新我的问题
2015-04-15 15:22:50,402 [http-bio-8080-exec-8] ERROR errors.GrailsExceptionResolver  - PSQLException occurred when processing request: [GET] /app
This ResultSet is closed.. Stacktrace follows:
Message: Error processing GroovyPageView: could not advance using next()
    Line | Method
->>  257 | doFilter  in \grails-app\views\some\list.gsp

Caused by GenericJDBCException: could not advance using next()
->>  265 | doCall    in list_gsp$_run_closure2
|    291 | run       in list_gsp
|    198 | doFilter  in grails.plugin.cache.web.filter.PageFragmentCachingFilter
|     63 | doFilter  in grails.plugin.cache.web.filter.AbstractFilter
|     53 | doFilter  in grails.plugin.springsecurity.web.filter.GrailsAnonymousAuthenticationFilter
|     49 | doFilter  in grails.plugin.springsecurity.web.authentication.RequestHolderAuthenticationFilter
|     82 | doFilter  in grails.plugin.springsecurity.web.authentication.logout.MutableLogoutFilter
|     76 | doFilter  in org.jasig.cas.client.session.SingleSignOutFilter
|   1145 | runWorker in java.util.concurrent.ThreadPoolExecutor
|    615 | run       in java.util.concurrent.ThreadPoolExecutor$Worker
^    745 | run . . . in java.lang.Thread

Caused by PSQLException: This ResultSet is closed.
->> 2852 | checkClosed in org.postgresql.jdbc2.AbstractJdbc2ResultSet
|   1890 | next      in     ''
|    265 | doCall .  in list_gsp$_run_closure2
|    291 | run       in list_gsp
|    198 | doFilter  in grails.plugin.cache.web.filter.PageFragmentCachingFilter
|     63 | doFilter  in grails.plugin.cache.web.filter.AbstractFilter
|     53 | doFilter  in grails.plugin.springsecurity.web.filter.GrailsAnonymousAuthenticationFilter
|     49 | doFilter  in grails.plugin.springsecurity.web.authentication.RequestHolderAuthenticationFilter
|     82 | doFilter  in grails.plugin.springsecurity.web.authentication.logout.MutableLogoutFilter
|     76 | doFilter  in org.jasig.cas.client.session.SingleSignOutFilter
|   1145 | runWorker in java.util.concurrent.ThreadPoolExecutor
|    615 | run       in java.util.concurrent.ThreadPoolExecutor$Worker
^    745 | run . . . in java.lang.Thread