解决懒加载的问题
Exception in thread "main" org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role
----主表
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.po.Sortp" table="sortp" >
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="assigned" />
</id>
<property name="name" type="java.lang.String">
<column name="name" length="40" not-null="true" />
</property>
<set name="productses" inverse="true" cascade="all" lazy="false">
<key>
<column name="sortid" not-null="true" />
</key>
<one-to-many class="com.po.Products" />
</set>
</class>
</hibernate-mapping>
---从表
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.po.Products" table="products" >
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="assigned" />
</id>
<many-to-one name="sortp" class="com.po.Sortp" fetch="select" cascade="all">
<column name="sortid" not-null="true" />
</many-to-one>
<property name="name" type="java.lang.String">
<column name="name" length="50" not-null="true" />
</property>
<property name="price" type="java.lang.Double">
<column name="price" precision="22" scale="0" not-null="true" />
</property>
<property name="saleprice" type="java.lang.Double">
<column name="saleprice" precision="22" scale="0" not-null="true" />
</property>
<property name="descript" type="java.lang.String">
<column name="descript" length="65535" not-null="true" />
</property>
<property name="contents" type="java.lang.String">
<column name="contents" length="65535" not-null="true" />
</property>
<property name="saledate" type="java.util.Date">
<column name="saledate" length="10" not-null="true" />
</property>
<property name="salecount" type="java.lang.Integer">
<column name="salecount" />
</property>
<property name="image" type="java.lang.String">
<column name="image" length="50" />
</property>
</class>
</hibernate-mapping>
在主表映射中需要设置懒加载,默认是为true 的
<set name="productses" inverse="true" cascade="all" lazy="true">
还有一种方式就是用代码处理
public static void main(String[] args) {
// TODO Auto-generated method stub
SortpDAO dao = new SortpDAO();
List<Sortp> list = dao.getAllSortp();
for(Sortp s :list){
if(!Hibernate.isInitialized(s.getProductses())){
Hibernate.initialize(s.getProductses());
}
}
dao.closeSession();
for(Sortp s :list){
System.out.println(s.getName());
Set<Products> set =s.getProductses();
Iterator<Products> it = set.iterator();
while(it.hasNext()){
System.out.println("-----------"+it.next().getDescript());
}
}
}
分享到:
相关推荐
hibernate抓取策略和懒加载案例,供大家下载查看。大家都知道,hibernate都设计到一个优化问题。
hibernate懒加载策略.dochibernate懒加载策略.doc
深入理解hibernate懒加载技术,正确使用懒加载
去除预加载的Viewpager,加载第一页时不会默认加载第二页,
解决org.hibernate.LazyInitializationException: could not initialize proxy - no Session...
主要介绍了浅谈解决Hibernate懒加载的4种方式,具有一定借鉴价值,需要的朋友可以参考下。
019 关联映射文件中集合标签中的 lazy(懒加载)属性 020 、单端关联上的 lazy(懒加载)属性 021 继承关联映射 022 component(组件)关联映射 023 复合主键 关联映射 024 其它 关联映射 025 hibernate 悲观锁、乐观锁 ...
hibernate配置连接池大全 hibernate配置连接池大全
主要介绍了hibernate 中 fetch=FetchType.LAZY 懒加载失败处理方法,需要的朋友可以参考下
Hibernate 简介 Hibernate 开发流程 Hibernate 配置文件 Hibernate 核心接口和类 Hibernate ORM映射 HQL Hibernate 懒加载机制与抓取策略 Hibernate 缓存 Hibernate 锁机制
有问题的懒加载,有大神帮忙修改么?
SSH2 annotation 实现struts2.1.6 spring2.5.6 hibernate3.3 全注解开发 hibernate延迟加载_懒加载 具体应用
NULL 博文链接:https://profound-accumulation.iteye.com/blog/2243103
主要介绍了Hibernate懒加载之标签上的lazy,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
学习成长路,Hibernate总结: 1.Hibernate入门优缺点、 2.Hibernate的操作CRUD、 3.主键生成机制、 ...7.懒加载、 8.Hibernate检索策略(fetch抓取策略)、 9.二级缓存、 10.Hbernate的检索方式(HQL语句)
hibernate实体有三个状态 1、瞬时状态 对象由new操作符创建,尚未与Session关联的对象被认为处于瞬态.瞬态对象不会持久化到数据库中,也不会被赋予持久化标识.而这个时候只在内存中存在,与数据库无关 2、持久状态 ...
框架全部采用懒加载机制。 支持单对象查询、分页查询、集合查询、级联查询。 默认集成BoneCP数据连接池框架。 支持Spring集成配置。配置简单易用。 支持XML映射的SQL mapper。支持DML及DDL配置。 SQL mapper...
配置了lazy="true"一定会懒加载吗? 答:不一定,如果在配置中你也使用了fetch属性的话此时lazy就会失效。 Hibernate数据库标识与主键之间的认识? 答:标识是为了方便和简介映射文件,主键是为了让数据不会重复。 ...
基于 hibernate3.3+spring3.0+struts2 搭建好的框架,数据库 事物 已经配好,懒加载 也配好了
本文结合OA项目,介绍ssh框架所遇到的核心问题,包含登录时数据初始化设置,hibernate懒加载处理,structs2对权限的拦截处理,jsp页面传值EL和ONGL表达式的介绍