当前位置: 首页 > 知识库问答 >
问题:

打开会话视图(OSIV)和Hibernate会话刷新

韩靖琪
2023-03-14

下面是Spring3.x和Hibernate3.x上的一个假设情况

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

典型的DAO方法如下-

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

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

共有1个答案

贾兴学
2023-03-14
  1. AUTO刷新模式将在以下情况下执行挂起的DML语句:
  • 当前事务已提交
  • 当查询可能以实体表为目标时,当前已排队等待刷新
 类似资料:
  • 问题内容: 考虑到我选择的JPA(Hibernate实现),Spring和<在此处插入MVC框架-Struts 1,Struts 2,Spring MVC,Stripes …>的开发框架,我要问这个问题。 我一直在思考我的实体层中的关系- 例如,我有一个包含许多订单行的订单实体。我已经设置好我的应用程序,以便它热切地加载每个订单的订单行。您是否认为这是解决如果将获取策略设置为false会遇到的惰性

  • 我使用CXF Servlet公开了一些REST服务。然而,我遇到了这样的问题:一个类需要一个延迟加载的集合(不止一个列表)。我得到了这个: 我的cxf配置相当简单: 如何实现“在视图中打开会话”模式,以便在 Jackson 序列化对象时我的Hibernate会话可用?

  • 我正在做一个项目,使用Hibernate进行持久化,使用Struts 2进行视图模式。 我的配置文件是: : < code > application context . XML : 我的问题是,在Struts 2的视图模式中,我无法保持Hibernate会话打开,这意味着当我尝试加载一些尚未用Hibernate初始化的数据(例如集合)时,我会得到<code>org.Hibernate。LazyI

  • 我正在构建一个反向代理服务器,它将授权http请求并将其传递给一些内部API。 我根据DB中的条目授权传入请求。 这个项目中的性能是优先的——反向代理服务器不应该增加太多响应时间。 简而言之: 我正在使用来查询数据库。我在Spring配置中的init期间打开Hibernate会话: 然后我将会话注入DAO层,并在read方法中使用它: 正如您所看到的,我并不是在每次DAO调用中都关闭/打开会话。我

  • 我在学习冬眠时遇到了一个问题。我写了UnitTest和那里我尝试添加对象到DB。所有选择都正常工作,但插入不正常。 我也尝试过这样的东西 它引发了一个异常,事务没有成功启动,但它添加了用户 这里有一个例外 组织。springframework。交易TransactionSystemException:无法回滚Hibernate事务;嵌套的异常是org。冬眠TransactionException:

  • 我有下面的方法,每隔几秒钟插入一大批记录。运行一段时间后,我得到如下错误: 错误:通信链接失败 从服务器成功接收的最后一个数据包是523毫秒前。上次成功发送到服务器的数据包是8毫秒前。 May 16, 2013 9:48:30 AM com.mchange.v2.c3p0.stmt.GooGooStatementCache checkinStatement INFO: 签入语句问题,丢弃。 com