转换json关联集合运行时出现懒加载问题解决方案

本文介绍了解决JSON关联集合在转换过程中遇到的懒加载异常问题,提供了四种解决方案,包括使用注解忽略属性、手动加载数据、配置立即抓取以及使用Spring提供的过滤器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



转换json 关联集合问题
运行时出现问题:出现懒加载异常
 
问题原因
 
如果需要将集合数据转换为json返回 


第一种:在get方法上添加@JSON(Serialize=false)注解,在转json的过程中忽略该属性。
@JSON(serialize=false)
public List<InOutStorageInfo> getInOutStorageInfos() {
return inOutStorageInfos;
}
第二种:在业务层(即Session关闭之前)手动查询数据 被加载 


第三种:配置立即抓取 (在实体中配置@LazyCollection,表示立即检索),查询TransitInfo对象的同时,立即查询InOutStorageInfo的对象。
@OneToMany
@JoinColumn(name = "C_TRANSIT_INFO_ID")
@OrderColumn(name = "C_IN_OUT_INDEX")
@LazyCollection(LazyCollectionOption.FALSE)
private List<InOutStorageInfo> inOutStorageInfos = new ArrayList<InOutStorageInfo>();


第四种(选择使用): 使用spring提供的OpenSessionInViewFilter的过滤器,如果使用spring的jpa,可以使用OpenEntityManagerInViewFilter的过滤器。这里注意:需要放置到struts2的过滤器的前面 
<!-- 解决懒加载的问题,该过滤器放置到struts2的过滤器的前面 -->
<filter>
<filter-name>OpenEntityManagerInViewFilter</filter-name>
<filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>OpenEntityManagerInViewFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值