JSF + Spring + JPA + Hibernate:在渲染视图时保持entitymanager活着?

JSF + Spring + JPA + Hibernate:在渲染视图时保持entitymanager活着?

问题描述:

全新的Spring & Java开发,但与一些有经验的开发人员一起开发一个课程项目。我相信我们使用Spring MVC作为我们的Web层(但我是一个C#人,所以我可能会在这方面弄错)。我们有一个观点,即获得一个延迟加载属性的对象 - 非常简单的东西。然而,当我把一个JSF视图中的这些属性之一,我得到这个错误:JSF + Spring + JPA + Hibernate:在渲染视图时保持entitymanager活着?

failed to lazily initialize a collection of role: xxxxxxxx, 
    no session or session was closed 

这让我觉得Hibernate的Session被关闭还为时过早。有没有办法让一个实体管理器在请求期间保持活动,包括在模型发送到视图进行渲染之后?

+3

除了这个特殊的问题,为什么不把这些与经验丰富的开发人员一起简短呢?他们当然渴望向您解释问题和解决方案。实际上,你们都应该一起工作,相互学习。 – BalusC 2010-01-31 16:06:53

+0

只有一个人有丰富的休眠经验。他坚持说,你必须刻录一个急切的查询来获取额外的任何东西。我认为这是疯狂的,尤其是因为我们处于开发的早期阶段,并且不知道如果需要通过热切的加载来优化哪个关系。我的.NET经验告诉我,他可能会陷入一种做事的方式。 – roufamatic 2010-01-31 16:17:54

+0

好吧,如果他没有说明任何具体的理由来急切地加载数据,那么他只是没有良好的休眠体验。在许多情况下,您完全可以实现延迟加载并且首选。 – Bozho 2010-01-31 20:28:44

+0

工程就像一个魅力。现在要说服我的同胞这是值得的。 – roufamatic 2010-02-02 07:11:55