【问题标题】:Open Session In View (OSIV) and Hibernate Session flush在视图中打开会话 (OSIV) 和休眠会话刷新
【发布时间】:2015-08-14 11:54:53
【问题描述】:

以下是 Spring 3.x 和 Hibernate3.x 上的假设情况

我在 spring 中有一个服务层,它调用 3 个 DAO 来构建一个模型。 DAO 是事务性的 (@Transactional) 并且具有延迟加载的休眠集合。
service 方法会导致一些更新以及数据的获取。

一个典型的 DAO 方法如下 -

public O create(I entity) throws GenericException {
    getOrCreateSession().save(entity);
    return (O)entity;
}

我有以下关于 OSIV 的问题 -
1.这个会话在默认的AUTO模式下刷新了多少次(数据库更新)?
2.可以使 OSIV 将会话扩展到单个请求(会话)之外吗?

【问题讨论】:

    标签: java spring hibernate orm transactions


    【解决方案1】:
    1. AUTO flush mode 将在以下情况下执行挂起的 DML 语句:
    • 当前事务已提交
    • 当查询可能以实体表为目标时,该表当前已排队等待刷新
    1. Spring Webflow 有support for long conversations

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-26
      • 2014-03-05
      • 1970-01-01
      • 1970-01-01
      • 2014-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多