gpt4 book ai didi

java - 在 Hibernate 和 JSF 2 中使用 OpenSessionInViewInterceptor

转载 作者:行者123 更新时间:2023-12-04 06:51:37 24 4
gpt4 key购买 nike

我仅使用注释在 Hibernate、Spring 和 JSF2 中构建应用程序。如何利用 Spring 中的 OpenSessionInViewInterceptor 来捕获可能在 bean 中打开的任何 hibernate session ?

我正在尝试优雅地解决常见的“未能延迟初始化角色集合:your.Class.association 没有 session 或 session 已关闭”。尝试从另一个 POJO(由包含我要读取的项目对象列表的 DAO 检索的标记实体)内的尚未初始化的 POJO 列表读取时出现问题。我发现了这个:
http://www.paulcodding.com/blog/2008/01/21/using-the-opensessioninviewinterceptor-for-spring-hibernate3/
但未能在我的环境中使用它。

请提供详细的答案,因为互联网上充满了模糊、无用的教程。如果提供了分步说明,我也会很乐意提供替代解决方案。

最佳答案

事实证明,它非常简单,比拦截器、AOP 以及在互联网上随处可见的无数奇怪的东西要简单得多。
将此代码段(请注意我在第二个 init-param 中的小评论)插入您的 web.xml 以忘记所有麻烦。

<!-- Hibernate OpenSession Filter -->
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
<init-param>
<param-name>singleSession</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>sessionFactoryBeanName</param-name>
<param-value>***WhateverTheNameOfYourSessionFactoryBeanIs***</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

关于java - 在 Hibernate 和 JSF 2 中使用 OpenSessionInViewInterceptor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3033974/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com