异常Hibernate:could not initialize proxy - no Session 2022-07-11 16:18 33阅读 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年09月26日 05:52/ 0 赞/ 85 阅读
相关 hibernate懒加载异常:could not initialize proxy - no Session解决办法 hibernate懒加载异常,通常是在查询一个对象,然后需要获取该对象的关联对象属性时出现的。对于这种错误解决办法有三种: 1、关闭懒加载,lazy=false。这种方式会在 系统管理员/ 2022年03月02日 19:55/ 0 赞/ 251 阅读
相关 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月12日 04:41/ 0 赞/ 34 阅读
相关 oracle异常关闭,启动:ORA-24324: service handle not initialized oracle关闭异常,再次启动时错误信息如下: SQL> shutdown immediate; ORA-24324: service handle not 深碍√TFBOYSˉ_/ 2022年05月16日 13:08/ 0 赞/ 382 阅读
相关 在spring data jpa 解决org.hibernate.lazyinitializationexception could not initialize proxy - no session ![异常截图][70] 框架:spring boot 最近使用spring data Jpa时候遇到一个懒加载的问题,下提供出解决方法。 1.在出问题的实体类上加@ 「爱情、让人受尽委屈。」/ 2022年05月16日 15:06/ 0 赞/ 19 阅读
相关 no session found for current thread异常 在spring+hibernate项目搭建过程中很容易出现no session found for current thread异常现象,综合网上的搜索结果主要有以下几种可能 刺骨的言语ヽ痛彻心扉/ 2022年06月12日 18:36/ 0 赞/ 12 阅读
相关 异常Hibernate:could not initialize proxy - no Session 这个从字面上就可以看出:不能初始化,没有session。也就说主要原因是因为session关闭了。 在[hibernate][]中,<many-to-one…/>中的l 谁借莪1个温暖的怀抱¢/ 2022年07月11日 16:18/ 0 赞/ 34 阅读
相关 JPA之"could not initialize proxy - no Session"的异常解决 引言: 在使用JPA中经常会碰到各类问题,这里列出解决no Session问题的方法。 1. 异常信息的描述 这里列出异常栈, 关键词是无法初始化proxy,在读取 女爷i/ 2022年07月18日 19:58/ 0 赞/ 261 阅读
相关 JPA报could not initialize proxy异常 Q: 问题描述:查考试表的时候 用org.springframework.data.repository.CrudRepository\findById 正常。 用org.s 比眉伴天荒/ 2022年11月21日 09:06/ 0 赞/ 62 阅读
相关 org.hibernate.LazyInitializationException: could not initialize proxy 错误1: org.hibernate.LazyInitializationException: could not initialize proxy [com.imo 骑猪看日落/ 2022年12月31日 09:14/ 0 赞/ 9 阅读
还没有评论,来说两句吧...