Spring MVC中的Hibernate会话管理

时间:2018-02-02 13:04:43

标签: java hibernate spring-mvc caching

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

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

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

0 个答案:

没有答案