sessionfactory.openSession()和sessionfactory.openStatelessSession()之间的区别?

时间:2011-03-31 08:18:20

标签: java hibernate

我想知道上面提到的hibernates sessionfactory类的两个方法之间的概念差异,如果用简单的例子可能的话。

1 个答案:

答案 0 :(得分:15)

前者打开正常(有状态)会话,而后者(可能不奇怪)会打开无状态会话

根据the Javadoc,无国籍会话是:

  

面向命令的API,用于对数据库执行批量操作。

     

无状态会话不实现第一级缓存,也不与任何二级缓存交互,也不实现事务性后写或自动脏检查,也不会对关联实例进行级联操作。无状态会话将忽略集合。通过无状态会话执行的操作绕过Hibernate的事件模型和拦截器。由于缺少第一级缓存,无状态会话容易受到数据别名影响。

     

对于某些类型的事务,无状态会话的执行速度可能比有状态会话略快。