我正在使用Spring MVC和Hibernate开发Web应用程序,几个实体类,其中一些关联,并且有许多方法涉及多个实体的操作(例如一次更新两个实体),并且一些方法多次出现(如getCurrentlyAuthenticatedUser) ()(我认为应该在Hibernate第一级缓存中缓存以避免冗余查询,所以应该在一个会话中调用 . )目前,我在每个方法都有数据库操作的sessionFactory.getCurrentSession() . 我读到会话对象是不是线程安全的,应该在事务完成后立即关闭,但也应该关闭

<property name="hibernate.current_session_context_class">
      thread
 </property>

绑定到上下文的会话,因此getCurrentSession()获取的会话不需要关闭,所以我对使用getCurrentSession()感到困惑 . 我想实现最好的会话管理系统,以避免线程安全问题,并利用Hibernate一级缓存 .