异常Hibernate:could not initialize proxy - no Session 2022-07-11 08:18 181阅读 0赞 这个从字面上就可以看出:不能初始化,没有session。也就说主要原因是因为session关闭了。 在[hibernate][]中,<many-to-one…/>中的lazy默认为proxy。这样hibernate在[数据库][Link 1]中查询数据时事不会把关联的 对象查出来的,而是保存一个获得该值得方法:getXxxx()。当我们需要使用这个值的时候,也就是使用getXxx()方法来 调用的时候,Hibernate就会利用这个方法从数据库中获取相应的数据。但是很不幸,我们的session早就关闭了。这 是因为Hibernate的懒加载策略,在Hibernate中是使用sessionFactory来管理session,我们每进行一次数据库操作时 都会新建一个session对象,当我们操作完成后,hibernate就会在dao层立即关闭该session。这样做就可以严格控制 session,避免出现低级错误。 对于这种错误,一般都会有三个方法可以解决。 1、把lazy设成false。这个是最简单的办法,个人认为也是比较笨的方法。因为这是在用效率作为代价。 2、使用OpenSessionInViewFilter。这种方法是将session交给servlet filter来管理,每当一个请求来之后就会开 启一个session,只有当响应结束后才会关闭。如下: **\[html\]** view plain copy print ? 1. <filter-name>hibernateFilter</filter-name> 2. <filter-class> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter </filter-class> 3. </filter 4. <filter-mapping> 5. <filter-name>hibernateFilter</filter-name> 6. <url-pattern>/\*</url-pattern> 7. </filter-mapping> ![save_snippets.png][] <filter-name>hibernateFilter</filter-name> <filter-class> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter </filter-class> </filter <filter-mapping> <filter-name>hibernateFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 上面的配置文件时在web.xml中配置的。 3、将hibernate的抓起策略改为join。也就是是left join fetch或inner join fetch语法。就是在<many-to-one../>中配 置lazy=”false” fetch=”join”即可。如: **\[html\]** view plain copy print ? 1. <many-to-one name=“worker” lazy=“false” fetch=“join” class=“com.paixie.domain.Worker”> 2. 3. <column name=“positionId”></column> 4. 5. </many-to-one> ![save_snippets.png][] <many-to-one name="worker" lazy="false" fetch="join" class="com.paixie.domain.Worker"> <column name="positionId"></column> </many-to-one> [hibernate]: http://lib.csdn.net/base/javaee [Link 1]: http://lib.csdn.net/base/mysql [save_snippets.png]: /images/20220711/195c9b749b4741ed89caf578574f4a59.png
相关 could not initialize proxy - no Session 这是一个精典的问题: 因为我们在hibernate里面load一个对象出来时,用到的是代理对象,也就是说当我们在执行load方法时并没有发sql语句,而是返回一个proxy 墨蓝/ 2021年06月24日 14:00/ 0 赞/ 369 阅读
相关 could not initialize proxy - no Session 这是一个精典的问题: 因为我们在hibernate里面load一个对象出来时,用到的是代理对象,也就是说当我们在执行load方法时并没有发sql语句,而是返回一个proxy 亦凉/ 2021年09月25日 21:52/ 0 赞/ 263 阅读
相关 hibernate懒加载异常:could not initialize proxy - no Session解决办法 hibernate懒加载异常,通常是在查询一个对象,然后需要获取该对象的关联对象属性时出现的。对于这种错误解决办法有三种: 1、关闭懒加载,lazy=false。这种方式会在 系统管理员/ 2022年03月02日 11:55/ 0 赞/ 471 阅读
相关 EJB项目出现“org.hibernate.LazyInitializationException: could not initialize proxy - no Session”异常解决 环境 JBoss 6.0 + MyEclipse 8.6 + MySQL 5.1 + Struts 2.3 + EJB 3.0 问题 两张表存在多对一的关系 素颜马尾好姑娘i/ 2022年04月11日 20:41/ 0 赞/ 125 阅读
相关 could not initialize proxy - no Session could not initialize proxy - no Session 你是不是已经配置了`openSessionInView`还报这个错,不是,那还不去配置!! - 日理万妓/ 2022年06月17日 05:53/ 0 赞/ 46 阅读
相关 异常Hibernate:could not initialize proxy - no Session 这个从字面上就可以看出:不能初始化,没有session。也就说主要原因是因为session关闭了。 在[hibernate][]中,<many-to-one…/>中的l 谁借莪1个温暖的怀抱¢/ 2022年07月11日 08:18/ 0 赞/ 182 阅读
相关 JPA中的could not initialize proxy - no Session异常分析与解决 引言: JPA是一种非常流行和常用的持久化框架标准,其下可以对接若干种不同的实现,在不同的父子表管理中,经常会碰到no Session的问题,该如何解决呢? 1. 问题的引出 r囧r小猫/ 2022年07月15日 13:40/ 0 赞/ 90 阅读
相关 JPA之"could not initialize proxy - no Session"的异常解决 引言: 在使用JPA中经常会碰到各类问题,这里列出解决no Session问题的方法。 1. 异常信息的描述 这里列出异常栈, 关键词是无法初始化proxy,在读取 女爷i/ 2022年07月18日 11:58/ 0 赞/ 601 阅读
相关 could not initialize proxy - no Session 这是一个精典的问题: 因为我们在hibernate里面load一个对象出来时,用到的是代理对象,也就是说当我们在执行load方法时并没有发sql语句,而是返回一个pro 我会带着你远行/ 2022年08月01日 13:40/ 0 赞/ 147 阅读
相关 hinbernate懒加载异常org.hibernate.LazyInitializationException: could not initialize proxy - no Session DataGridJSONModel json = new DataGridJSONModel(); PageHolder<IP> - 日理万妓/ 2022年09月26日 02:43/ 0 赞/ 59 阅读
还没有评论,来说两句吧...