gpt4 book ai didi

java - 多线程环境中的 Hibernate.getCurrentSession()

转载 作者:行者123 更新时间:2023-12-03 13:08:38 33 4
gpt4 key购买 nike

我需要了解使用 Hibernate.getCurrentSession() 的最佳情况?

我的理解是,它在像 WebApplication(Spring MVC)这样的多线程环境中是有害的,因为在任何人提交该事务之前,正在处理 Hibernate.getCurrentSession() 事务的线程将被 Web 应用程序中的(共享)多个请求(线程)使用。

     Req1 ->
Req2 -> WebApp(Spring MVC) | <-- (Hibernate Current Session Thread)
Req3 ->

使用 Hibernate.getCurrentSession() 的最佳情况是独立应用程序(Swing/Desktop),我们称之为单线程应用程序。在这种情况下,单线程在运行,因此不存在共享事务的问题。
     Event/Action ->    Desktop(Swing) |  <-- (Hibernate Current Session Thread)

如果由于我对 getCurrentSession() 方法的接触有限,我的理解有误,有人可以纠正我吗?

分享其他人的经验对我来说是增值的。

这不是重复的问题

最佳答案

一般来说,EntityManagerHibernateSession不是线程安全的,但是在 spring mvc 的上下文中,您通常遵循每个请求的 session 或每个请求的事务模式,这基本上意味着您的实体管理器绑定(bind)到单个线程。

关于java - 多线程环境中的 Hibernate.getCurrentSession(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47506239/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com