failed to lazily initialize a collection of role

在springmvc hibernate的映射文件中如图设置多对多关联,为了显示查询的的列表,打印json数据,我们刚开始是这样设置如下的设置文件

然后进行查询操作

结果报 failed to lazily initialize a collection of role错误

假如这样设置

结果就是这样的

正常打印json数据

为什么会这样?

首先,lazy是延时的意思,如果lazy=true,那么就是说数据库中关联子表的信息在hibernate容器启动的时候不会加载,而是在你真正的访问到字表非标识字段的时候,才会去加载。反之,如果lazy=false的话,就是说,子表的信息会同主表信息同时加载。一般用只有完全用到子表信息的时候,才会lazy=false

  Hibernate延时加载包括延迟初始化错误,这是运用Hibernate开发项目时最常见的错误。如果对一个类或者集合配置了延迟检索策略,那么必须当代理类实例或代理集合处于持久化状态(即处于Session范围内)时,才能初始化它。如果在游离状态时才初始化它,就会产生延迟初始化错误。

时间: 2024-08-06 02:03:43

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

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

懒加载异常 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

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 各有利弊

java 不寻常的问题 No bean named &amp;#39;sessionFactory&amp;#39; is defined 和 initialize a collection of role

左右java的"No bean named 'sessionFactory' is defined "  现在经常出去SHH或在其框架内Sping+JPA使用底部HIbernate annotation 的实现:出现异常的原因是找不到sessionFactory bean. 原因有例如以下: 1.在Many-to-one  或是many-to-many 时候 我们设置了fetchType="lazy" 延时载入. 解决这个问题的方法在web.xml中,增加  ope

java 异常问题 No bean named &#39;sessionFactory&#39; is defined 和 initialize a collection of role

关于java的"No bean named 'sessionFactory' is defined "  频繁的出现在与SHH框架中或是在与Sping+JPA底层使用了HIbernate annotation 的实现:出现异常的原因是找不到sessionFactory bean. 原因有如下: 1.在Many-to-one  或是many-to-many 时候 我们设置了fetchType="lazy" 延时加载.解决问题的方法在web.xml中,加入  openS

Android开发之parseSdkContent failed Could not initialize class android.graphics.Typeface

在进行android开发过程中,忽然发现经常弹出来parseSdkContent failed 这个错误,然后google了下解决办法 方法1: 删除.android文件 重启eclipse. 该方法对我来说还是管用的,确实没有弹出这些东西了.但是在启用SDK Manger或者虚拟机的时候,弹出了parseSdkContent failed Could not initialize class android.graphics.Typeface这个问题,解决google吧. 然后在stackov

parseSdkContent failed Could not initialize class android.graphics.Typeface

When I open layout editor, eclipse is giving this error: parseSdkContent failed Could not initialize class android.graphics.Typeface And when I try to run project, it is giving this error : An internal error occurred during: "Launching myapp". j