渲染阶段的 JSF 2.0 实体管理器事务问题

Posted

技术标签:

【中文标题】渲染阶段的 JSF 2.0 实体管理器事务问题【英文标题】:JSF 2.0 entity manager Transaction problems during render phase 【发布时间】:2011-08-10 22:54:11 【问题描述】:

在渲染阶段渲染最终视图时,休眠抛出

failed to lazily initialize a collection of role

我想这是因为没有事务来获取惰性数据。

在这种情况下,除了急切地加载数据之外,最好的解决方案是什么。

我可以扩展交易以涵盖此阶段

注意。我没有使用 EJB,所以没有容器管理事务。

有什么想法吗?

【问题讨论】:

【参考方案1】:

根据您使用的 Hibernate 版本,您可以为此特定查询启用即时获取。如果您使用的 Hibernate 版本不支持,您必须手动预取它,方法是在进入视图之前调用“getRoles”。最后一个解决方案是使用“在视图中打开会话”模式:http://community.jboss.org/wiki/OpenSessioninView

【讨论】:

以上是关于渲染阶段的 JSF 2.0 实体管理器事务问题的主要内容,如果未能解决你的问题,请参考以下文章

Java Servlet 过滤器和其他对象和实体管理器的范围

CDI 事务管理

Seam3/Weld - 找不到实体管理器

关于分布式事务两阶段提交一阶段提交Best Efforts 1PC模式和事务补偿机制的研究[转]

关于分布式事务两阶段提交一阶段提交Best Efforts 1PC模式和事务补偿机制的研究[转]

ClassNotFound : 创建实体管理器工厂时的 javax.persistence.Persistence