grails sessionFactory.currentSession.flushMode 不适用于线程?
在 grails 中,我们有以下配置:
DataSource.groovy: <代码>
hibernate {
flush.mode="commit"
}
当我们将其记录在事务上下文中时,它会打印“COMMIT”: <代码>
println "session=${sessionFactory.currentSession.flushMode}"
但是当我们创建一个新线程时,
它会打印“AUTO”。
新线程似乎确实获得了其他休眠设置,即数据库、用户名和工厂,但 currentSession 不采用flush.mode 设置。
有人可以建议吗?
In grails we have the following config:
DataSource.groovy:
hibernate { flush.mode="commit" }
which prints "COMMIT" when we log it in a transactional context:
println "session=${sessionFactory.currentSession.flushMode}"
but when we create a new thread
this prints "AUTO".
New thread does seem to get the other hibernate settings, ie database, username and factory, but the currentSession doesn't take the flush.mode setting.
Can anyone advise?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您使用的是 Quartz 插件吗?
Quartz改变冲洗模式:
https://fisheye.codehaus.org/browse/~raw,r=41198/grails-plugins/grails-quartz/tags/LATEST_RELEASE/src/java/org /codehaus/groovy/grails/plugins/quartz/listeners/SessionBinderJobListener.java
解决方法是更改 Job 中的刷新模式:
Are you using the Quartz plugin?
Quartz changes the flush mode:
https://fisheye.codehaus.org/browse/~raw,r=41198/grails-plugins/grails-quartz/tags/LATEST_RELEASE/src/java/org/codehaus/groovy/grails/plugins/quartz/listeners/SessionBinderJobListener.java
The workaround is to change the flush mode in the Job: