Java 何时使用OpenSession()和GetCurrentSession() OpenSession()始终打开新会话 GetCurrentSession()将返回绑定到上下文的会话

Java 何时使用OpenSession()和GetCurrentSession() OpenSession()始终打开新会话 GetCurrentSession()将返回绑定到上下文的会话,java,hibernate,Java,Hibernate,GetCurrentSession()比OpenSession()快,所以我可以假设GetCurrentSession比OpenSession()好吗 在什么情况下我应该使用openSession()和GetCurrentSession()openSession-->如果使用此方法,则需要刷新()并关闭()会话。它不会自动刷新并关闭()。当我们决定自己管理会话时,可以使用这种方法 getCurrentSession-->每当第一次调用getCurrentSession()时,就会打开一个会话,并

GetCurrentSession()比OpenSession()快,所以我可以假设GetCurrentSession比OpenSession()好吗

在什么情况下我应该使用openSession()和GetCurrentSession()

openSession-->如果使用此方法,则需要刷新()并关闭()会话。它不会自动刷新并关闭()。当我们决定自己管理会话时,可以使用这种方法

getCurrentSession-->每当第一次调用getCurrentSession()时,就会打开一个会话,并在事务结束时关闭该会话。如果一个会话不存在,则创建一个全新的会话;如果一个会话已经存在,则使用现有的会话。它自动配置为“自动刷新”和“自动关闭”属性为true,这意味着会话将自动刷新和关闭。 当事务长时间运行时,我们可以使用getCurrentSession()方法

getCurrentSession通常就足够了。openSession提供并促进了对会话存储和管理位置的更高级别的管理。这当然是一个高级选项,但它确实适合非常聪明的开发人员的需要,他们在会话中做了一些漂亮的事情

注意:使用getCurrentSession()创建会话将在提交或回滚时自动终止,使用openSession()创建会话将需要手动终止

openSession-->如果使用此方法,则需要刷新()并关闭()会话。它不会自动刷新并关闭()。当我们决定自己管理会话时,可以使用这种方法

getCurrentSession-->每当第一次调用getCurrentSession()时,就会打开一个会话,并在事务结束时关闭该会话。如果一个会话不存在,则创建一个全新的会话;如果一个会话已经存在,则使用现有的会话。它自动配置为“自动刷新”和“自动关闭”属性为true,这意味着会话将自动刷新和关闭。 当事务长时间运行时,我们可以使用getCurrentSession()方法

getCurrentSession通常就足够了。openSession提供并促进了对会话存储和管理位置的更高级别的管理。这当然是一个高级选项,但它确实适合非常聪明的开发人员的需要,他们在会话中做了一些漂亮的事情


注意:使用getCurrentSession()创建会话将在提交或回滚时自动终止,使用openSession()创建会话将需要手动终止

与JPA API完全无关。删除了标记绝对与JPA API无关。移除标签