【问题标题】:ui:repeat inside a ui:repeat and LazyInitExceptionui:repeat 在 ui:repeat 和 LazyInitException 内
【发布时间】:2010-03-05 10:03:13
【问题描述】:

我目前遇到 LazyInitException,页面包含如下代码:

<h:form>
<ui:repeat value="#{searchBean.storiesByTag}" var="iStory">
<ui:repeat value="{iStory.tags}"var="iTag">      
<!-- Lazy init exception here -->
#{iTag.content}
</ui:repeat>
</ui:repeat>
</h:form>

storiesByTag() 是一个检索 List 故事的 bean 方法。第二个ui:repeat 应该然后获取每个标签并显示其内容。默认情况下,所有获取都是惰性的,以避免加载过多的对象。

我对此仍然很模糊,但据我了解,这可能是因为EntityManager 在请求期间关闭(从@Transactional 云退出)或正在访问Collection

Spring 的 OpenEntityManagerInViewFilter 已添加到项目中,但我不确定它是否正确地完成了工作。欢迎提出任何测试建议。

因为我认为Collection 是这里的问题,所以我想知道什么是好的解决方案。我应该用fetch join 修改DAO 方法吗?或者我应该通过使用&lt;f:view beforePhaseListener=...&gt; 来触发 bean 中的方法并从数据库中获取一些新的 Tag 对象来采取 hacky 路线?

编辑:对于 Bozho:

web.xml

<!-- Open EM in View Filter -->

<filter>
    <filter-name>Spring OpenEntityManagerInViewFilter</filter-name>
    <filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>Spring OpenEntityManagerInViewFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<!-- End -->

对于罗马人:

applicationContext.xml

<!-- Transaction manager for a single JPA EntityManagerFactory (alternative to JTA) -->
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager" 
        p:entityManagerFactory-ref="entityManagerFactory"/>

【问题讨论】:

  • 您的OpenEntityManagerInView 是如何配置的?您是在重定向还是转发到视图?
  • OpenEntityManagerInView 被定义为 web.xml 中的过滤器(见上文)。正在使用重定向。

标签: java exception jsf transactional


【解决方案1】:

您的实体管理器工厂的名称是什么?

来自 OpenEntityManagerInView 文档:

在 Spring 的根 Web 应用程序上下文中查找 EntityManagerFactory。支持 web.xml 中的“entityManagerFactoryBeanName”过滤器初始化参数;默认 bean 名称是“entityManagerFactory”。

如果您指定的名称不同于“entityManagerFactory”,则过滤器不会看到您的工厂。

【讨论】:

  • 这是标准的“entityManagerFactory”(见上文)。不过有用的信息:)
猜你喜欢
  • 2012-05-22
  • 2012-06-03
  • 1970-01-01
  • 1970-01-01
  • 2010-12-28
  • 2023-04-07
  • 2016-12-31
  • 1970-01-01
  • 2012-05-14
相关资源
最近更新 更多