Hibernate的session问题

原创 2015年11月17日 23:41:22

  今天笔者碰到一个hibernate session的问题。

首先开启了Spring的openSessionInView,然后在action中先通过id get到一个对象,并将它的部分属性更改,然后在service中查满足条件的该类对象,发现查出来的数据量比真实数据库中的要多一个,而且在service执行完后将get到的对象直接提交更新。

笔者当时不能理解,后来仔细想了想,只能如此解释:因为开启了openSessionInView,所以get到的那个对象,会先放在hibernate的session中,然后更改了其属性。因为service有spring的事务注解(具体是利用Spring的AOP来实现的,即在service方法执行前开启事务,执行后关闭事务),在service的方法执行完后,会依次调用session.flush(),transcration.commit() 方法将事务提交。因为get到的对象在session中,所以flush时就会被提交更改到数据库中。


版权声明:本文为博主原创文章,未经博主允许不得转载。

详解Hibernate中的NoSession问题

1.前言 今天在整合SSH框架的时候,当在表现层调用bean层查找数据的时候,报错,具体如下所示 根据字面上的意思,应该是代理不能被初始化,session已经关闭,这篇博客就来...
  • ZHOUCHAOQIANG
  • ZHOUCHAOQIANG
  • 2015年08月21日 10:05
  • 4669

hibernate延迟加载导致no session

hibernate的get和load的区别相信大家都知道,load是通过代理加载实体,如果只访问id是不会读库将所有属性加载进来的,这个就是一个延迟加载的简单场景。 如果按照标准的sprin...
  • caomiao2006
  • caomiao2006
  • 2016年07月24日 21:22
  • 1000

Hibernate中的session和load延迟加载矛盾问题,如何解决?

如果延迟加载出现session close的情况下 方法1.在web.xml中配置spring的openSessionInViewFilter 延迟加载带来的session close的解...
  • FANTASY522272820
  • FANTASY522272820
  • 2016年03月29日 20:17
  • 1317

Hibernate no session or session was closed 解决

虽然说Hibernate的no session已经是一个很老的问题。但是,这个问题无疑是新手最为困扰的事情。 这里将自己如何处理这个问题的解决方法有必要说一下: 之前在web.xml中配置过ope...
  • zhbitxhd
  • zhbitxhd
  • 2013年12月02日 11:24
  • 5572

深入了解Spring4整合Hibernate4时的No Session异常的原理与解决方案

深入了解Spring4整合Hibernate4时的No Session异常的原理与解决方案
  • canot
  • canot
  • 2016年03月26日 22:05
  • 2246

Hibernate中no session 详解及解决办法

延迟初始化错误是运用Hibernate开发项目时最常见的错误。如果对一个类或者集合配置了延迟检索策略,那么必须当代理类实例或代理集合处于持久化状态(即处于Session范围内)时,才能初始化它。如果在...
  • u012881584
  • u012881584
  • 2014年10月24日 22:17
  • 758

过滤器解决Hibernate中(no session or session was closed)异常

简单说一下引起no session or session was closed
  • cnm_1314
  • cnm_1314
  • 2014年09月10日 11:22
  • 2863

hibernate中获取session和开启事务时遇到问题及解决

代码 是在spring+hibernate框架下 org.hibernate.HibernateException: Could not obtain transaction-synchronized...
  • name_z
  • name_z
  • 2017年02月01日 15:55
  • 1526

hibernate的延迟加载及其与session关闭的矛盾

延迟加载就是并不是在读取的时候就把数据加载进来,而是等到使用时再加载。     那么Hibernate是怎么知道用户在什么时候使用数据了呢?又是如何加载数据呢?     其实很简单,它使用了代理机...
  • WarcraftJimmy
  • WarcraftJimmy
  • 2012年05月04日 17:16
  • 6896

Hibernate懒加载问题解决

解决Hibernate:could not initialize proxy-no Session         出现的问题:不能初始化,没有session(session关闭)        ...
  • zhanfeng_blogs
  • zhanfeng_blogs
  • 2017年10月19日 14:46
  • 473
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hibernate的session问题
举报原因:
原因补充:

(最多只允许输入30个字)