Sealyu

--- 博客已迁移至: http://www.sealyu.com/blog

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  618 随笔 :: 87 文章 :: 225 评论 :: 0 Trackbacks
今天碰到一个问题,在显示实体的集合属性的时候竟然报错:org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role。记得在看seam preference的时候,里面提到seam已经解决了hibernage的这个痼疾,所以感觉很奇怪。在研究了代码并google之后,终于发现了问题,原来是配置EntityManager的时候出现了错误:
原来的配置: @PersistenceContext(unitName="default")     EntityManager mgr;
修改后: @PersistenceContext(type=PersistenceContextType.EXTENDED,unitName="default")     EntityManager mgr;

错误原因,有位仁兄解释的很清楚,附原帖:http://www.seamframework.org/Community/HowToAvoidLazyInitializationException


posted on 2009-03-11 11:56 seal 阅读(4140) 评论(4)  编辑  收藏 所属分类: Seam

评论

# re: Seam 错误:org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role 2009-04-13 14:51 gembin
PersistenceContextType.EXTENDED, This only applies to stateful session beans?  回复  更多评论
  

# re: Seam 错误:org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role 2009-04-13 15:31 seal
gembin你好:
这个是只用于stateful session bean的。

在容器中,EntityManager由容器来管理,它的事务由JTA来管理,当调用EntityManager时,容器首先检查是否处在持久化上下文中。

若是,则EntityManager将使用该持久化上下文和其关联的事务;

若没有关联任何持久化上下文,则创建一个新的持久化上下文,并将EntityManager与所在的事务关联。

容器托管的EntityManager的持久化上下文的作用范围有两种:
(1)transaction类型
默认,无状态的session bean都是以事务为单位的。
有状态 session bean在默认情况下使用的是以一个事务为单位的持久化上下文。bean中的一个方法即为一个事务。-----即一个方法即为一个持久化上下文的作用范围。
一般事务的方法内建立持久化上下文,事务结束,持久化上下文也就结束。

(2)extended类型
无状态session bean每次调用都会创建新的持久化上下文,而有状态session bean中,将持久化上下文的类型设置为EXTENDED类型后,在上下文的作用周期中,访问对应的方法才不会出错。  回复  更多评论
  

# re: Seam 错误:org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role 2009-04-13 15:35 seal
有位仁兄已经翻了一篇帖子,我转过来了, 帖子详细介绍了seam中entitymanager的使用:
http://www.blogjava.net/sealyu/archive/2009/04/13/265298.html
你可以看看  回复  更多评论
  

# re: Seam 错误:org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role 2011-05-02 21:12 gu
这个网址讲的很详细
http://www.01yun.com/jssx/java/jdbc/20110419/1417.html  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: