2010-11-25 103 views
2

我的服务有一些问题,充当一些来自外部库的事件的侦听器,该库创建一个读取通信端口的线程并将数据发回给我的侦听器(grails服务)在某些情况下。 问题是,当读取线程调用方法时,我无法更新数据库,因为grails会将hibernate会话绑定到线程。线程中的休眠会话

有任何机会获得该线程的休眠会话? 有一个配置参数传播或注入会话线程?

我已经看过后台线程插件,但似乎只有在线程由grails创建时才有用。

回答

1

我认为你没有得到一个会话,因为你的服务没有被作为标准http请求的一部分被调用。

Grails中有一些方便的方法,如

withSession
withNewSession
withTransaction

可能适合该法案

+1

不withSession,但withNewSession http://www.grails.org/doc/ latest/ref/Domain%20Classes/withNewSession.html – Oleksandr 2010-11-25 15:20:14