ssh框架错误:org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role。

在做ssh项目练习的时候出现问题:

org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role

原因在于hibernate的懒加载出现的问题。在多方中的一方的配置没有指定加载方式,而且一方中的多方是懒加载,因此在获取一方的时候一方是获取到了,但是再获取多方的时候session已经关闭了,这时候会获取不到多方信息,因此报错。 解决办法:
将一方中的多方(one-to-many)的加载方式改为立刻加载,而多方中的一方(many-to-one)改为懒加载即可。
即在一对多的一方加上 lazy="false"(one-to-many)
时间: 2024-10-13 18:18:22

ssh框架错误:org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role。的相关文章

懒加载异常 org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role

@OneToMany(cascade={CascadeType.REFRESH,CascadeType.REMOVE},mappedBy="parent",fetch=FetchType.EAGER) private Set<ProductType> childTypes = new HashSet<ProductType>(); 这个是懒加载异常,就是在查询时没有加载关联表的对象,你读取这个关联对象的时候,hibernate的session已经关闭,所以无法获

org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role

这个是懒加载异常,就是在查询时没有加载关联表的对象,你读取这个关联对象的时候,hibernate的session已经关闭,所以无法获取对象.可以在配置文件里关闭懒加载 lazily=false 使用事务 @Override @Transactional public void run(ApplicationArguments args) throws Exception { initOrders(); findOrders(); } @SpringBootApplication @EnableJ

【转】hibernate懒加载的问题,failed to lazily initialize a collection of role

hibernate懒加载的问题,failed to lazily initialize a collection of role hibernate懒加载的问题,failed to lazily initialize a collection of role,有需要的朋友可以参考下. 今天往项目里添加了一个many-to-many的关联,发现即便是设置lazy=false也还是会报连接关闭的错误,打死都取不到数据. 可是原来有的many-to-one关联,设置了lazy=false是没问题的啊.

failed to lazily initialize a collection of role

在springmvc hibernate的映射文件中如图设置多对多关联,为了显示查询的的列表,打印json数据,我们刚开始是这样设置如下的设置文件 然后进行查询操作 结果报 failed to lazily initialize a collection of role错误 假如这样设置 结果就是这样的 正常打印json数据 为什么会这样? 首先,lazy是延时的意思,如果lazy=true,那么就是说数据库中关联子表的信息在hibernate容器启动的时候不会加载,而是在你真正的访问到字表非标

failed to lazily initialize a collection of role:XXX, no sessi

系统 框架  springMVC+hibernate 这种情况 由于 hibernate 的 懒汉机制,和 Spring 事务机制(不确定)造成的 由于 spring 配置的时候,在service 层关闭的了会话,controller(view层)根据对象转json的时候,由于 get的该属性,懒加载 执行了一次,由于session 已经关闭了,所以 就回报错 解决方法: 1. spring 配置的时候,事务提交,配置在 view层 2. 转json的忽略该字段,@JsonIgnore 各有利弊

用MyEclipse搭建SSH框架(Struts2 Spring Hibernate)

1.new一个web project. 2.右键项目,为项目添加Struts支持. 点击Finish.src目录下多了struts.xml配置文件. 3.使用MyEclipse DataBase Explorer建立数据源. new一个数据源.填入数据源信息. 点击test Driver,如果成功显示: 点击OK,点击Finish. 4.为项目添加Spring支持. 选择五个包,之后JAR Library Installation为如下图. 点击Next. 默认点击Finish. 5.为项目添加

SSH框架整合中Hibernate实现Dao层常用结构

一.疑惑 一直以来,我在使用SSH框架的时候经常会发现后者有疑虑到底使用hibernate的那种方法或者如何配置hibernate来操作数据库,经过 一段时间的学习下面我来总结一下,常用的dao层配置. 二.常用的hibernate操作dao  第一种,通过继承HibernateDaoSupport来操作 第二种,通过HibernateTemplate来操作 第三种,通过使用Hibernate的session来操作 第四种,直接写JDBC来实现数据库操作 三.四种常用方法介绍及配置 通过继承Hi

SSH框架第一天——hibernate框架

什么是框架? 是软件的半成品,它已经完成了部分功能. 什么是hibernate? hibernate是一个开放源代码的对象关系映射(ORM)框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库. (简单的说,hibernate框架通过映射(xml配置文件)来关联javabean和数据库,程序员可以操作对象来操作数据库了.) 三大框架在javaweb中的位置: Hibernate在开发中的位置: 注      意:hibernate的底层依然还

【SSH框架】之Hibernate系列一

微信公众号:compassblog 欢迎关注.转发,互相学习,共同进步! 有任何问题,请后台留言联系! 1.Hibernate框架概述 (1).什么是HibernateHibernate是一个开放源代码的 ORM 框架,是主流的Java持久层框架之一,它对 JDBC进行了轻量级的对象封装,使得Java开发人员可以使用面向对象的编程思想来操作数据库.(2).Hibernate在三层架构中的位置上篇文章所讲的Struts2框架取代的是三层框架中的web层,而Hibernate框架取代的则是dao层,