我遇到以下问题:
我需要的是在呈现页面之前保持会话打开,因为在我的JSP中使用从数据库加载的对象的惰性属性。
例如:
当我输入index.jspx时,执行IndexBean#main():
public class IndexBean{
private DBObject myDBObject;
public String main(){
this.myDBObject = this.myDAO.loadObjectFromDB();
return null;
}
}
index.jspx中的我有:
...
<af:inputText value="#{myDBObject.lazyAttribute}" />
...
我希望Hibernate的Session保持打开直到af:inputText被处理。
这可能吗?怎么样?
提前致谢
答案 0 :(得分:1)
最后,我解决了我的问题。
OpenSessionInViewFilter它正常工作。
我正在使用的<af:table>
组件出现问题...奇怪的是<af:table>
创建了一个新请求。这个新请求正在关闭并创建一个新的Hibernate Session。
答案 1 :(得分:0)
我建议您将视图与模型分离,并消除延迟加载。在呈现页面之前为页面提供所需的所有数据。如果获取其他数据确实是一个很大的性能影响,那么请考虑重新设计应用程序以单独呈现该数据。