我们有一个类似于g:set的自定义标签,它将当前用户设置为PageScope <n:currentUser var=”foobar”>
在我们有一个流程之前它很有效。
对于使用上面标记的流动视图状态,它将抛出Lazy初始化异常“无法初始化代理 - 无会话”,即使用户在同一请求中加载并在pagescope中设置。
webflow不尊重OpenSessionInView!这里出了什么问题。 什么可能是解决方案,然后急切地提取和明确传递模式。
(标签实际上是一个布局,适用于视图状态的视图)
更新
我刚注意到,即使在加载对象后立即访问该对象,它仍然会给出相同的错误。所以它不是导致问题的PageScope事件
标签内
User user = User.get(x)
println user.foo.bar gives the same error
看起来,对于流动作,会话根本不会保持打开状态,并且在操作完成后似乎就会关闭。
由于
答案 0 :(得分:1)
I've seen this error before,与网络流无关,但在布局中使用了标记。在这种情况下,会话关闭后处理布局,您需要手动创建新会话。
def currentUser = { attrs ->
User.withTransaction {
User user = User.get(x)
}
}
JIRA的状态无法修复,因为在TagLib中进行GORM查询不是一个好习惯。