【问题标题】:difference between sessionfactory.openSession() and sessionfactory.openStatelessSession()?sessionfactory.openSession() 和 sessionfactory.openStatelessSession() 之间的区别?
【发布时间】:2011-03-31 08:18:20
【问题描述】:

如果可以通过简单的例子,我想知道上面提到的hibernate sessionfactory类的两种方法之间的概念差异。

【问题讨论】:

    标签: java hibernate


    【解决方案1】:

    前者打开一个普通(有状态)会话,而后者(可能并不奇怪)一个无状态会话

    根据the Javadoc,无状态会话是:

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

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

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

    【讨论】:

    • 在无状态会话的情况下如何管理上下文。我想使用 getCurrentStatelessSession。
    猜你喜欢
    • 1970-01-01
    • 2012-04-21
    • 1970-01-01
    • 2021-12-25
    • 2020-05-10
    • 2014-09-20
    • 2010-10-28
    • 2015-10-04
    • 2012-08-12
    相关资源
    最近更新 更多