会话工厂可以独立于 spring 事务使用吗
作为这个问题的一部分:
一个我想到的解决方案是将我的会话工厂作为普通 bean 并在 spring 事务之外使用它。然后只需在我的新线程中手动处理我的事务即可。
我的问题,这可能吗?到目前为止,它不允许我在春季事务之外对会话工厂执行任何操作。如果要分离它,我该怎么做?
as part of this question:
spring transactions in a spawned off thread
one solution im thinking of is grabbing my session factory as a normal bean and using that outside of spring transactions. then simply handle my transactions manually within my new thread.
my problem, is this possible? so far its not letting me do anything with the session factory outside of the spring transaction. if it is to detach it, how do i do that?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您不想使用事务管理器,您可以调用以下命令来创建会话。
当您使用事务管理器时,并不意味着提交事务时所有 Hibernate 会话都会关闭!只有通过 sf.getCurrentSession() 获取的 Session 才会自动刷新并关闭。如果您决定使用 sf.openSession() 并自己管理会话,则必须对其进行刷新()和关闭()。因此,一个不太方便的替代方案,没有任何“当前”会话,是这样的:
这有更详细的解释这里。
If you don't want to use the transaction manager you can call the below to create a session.
When you use transaction manager it does not mean that all Hibernate Sessions are closed when a transaction is committed! Only the Session that you obtained with sf.getCurrentSession() is flushed and closed automatically. If you decide to use sf.openSession() and manage the Session yourself, you have to flush() and close() it. So a less convenient alternative, without any "current" Session, is this:
This is explained in more detail here.