org.hibernate.LazyInitializationException: could not initialize proxy - no Sessi

 1.设置里 lazy = "false"
会导致 org.hibernate.LazyInitializationException: could not initialize proxy - the owning Session was closed

"org.hibernate.LazyInitializationException: could not initialize proxy"延迟抓取出的错,hb3对many-to-one的默认处理是lazy = "proxy",把所有many-to-one,one-to-one都加上lazy="false"...

 

 

原因:hibernate3 many-to-one的默认选项是 lazy = "proxy"
解决方法:<many-to-one>  & <set> 中设置 lazy="false"

 

2.说下解决方案~

在类名上@Proxy(lazy = false)注释~

然后在One的一方加入抓取模式注释 fetch = FetchType.EAGER~

 

3.Hibernate3延迟加载机制

    首先说明Hibernate3延迟加载只多其中的load,get,find一些内值方法有用,对hql等写sql的无效。在Hibernate中提供了对实体对象的延迟加载以及对集合的延迟加载,另外在Hibernate3中还提供了对属性的延迟加载。

(1)实体对象的延迟加载

@OneToMany(mappedBy="role", fetch=FetchType.LAZY)

//mappedBy:定义双向关联中的从属类。使用在One一方,值为One方类名表示Many的从属类。
 // // mappedBy="school"就相当于inverse=true,(mappedBy指定的是不需要维护关系的一端)  
 @OrderBy("id desc")
 public Set<Staff> getStaffs() {
  return staffs;
 }

 

http://blog.csdn.net/it_man/archive/2009/08/02/4402317.aspx

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值