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

16
如果可能的话,我想了解Hibernate SessionFactory类的上述两种方法的概念区别,并带有简单的示例。
1个回答

17

前者开启一个常规(stateful)会话,而后者(可能不出所料地)开启一个无状态(stateless)会话。

根据Javadoc的说明,无状态会话是:

针对数据库执行批量操作的命令导向 API。

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

对于某些类型的事务,无状态会话可能比有状态会话稍微快一点。


在无状态会话的情况下,您将如何管理上下文。我想使用getCurrentStatelessSession。 - Kiran A B

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接