首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Hibernate 4和使用JPA + Spring时延迟加载的改进

Hibernate 4和使用JPA + Spring时延迟加载的改进
EN

Stack Overflow用户
提问于 2011-12-14 17:55:33
回答 3查看 1.6K关注 0票数 1

Hibernate 4在延迟加载方面有什么改进吗?

我们使用Hibernate作为JPA提供程序,并希望保持代码中没有hibernate特定的东西。我们不想使用Hibernate会话ojbects。在我们的应用程序中,我们还使用了Spring和JSF。我们认为存在一个OpenSessionInViewFilter和一个OpenSessionInViewInterceptor,但是这两者似乎只有在bean位于请求作用域时才能工作。拦截Spring session作用域(@Scope("session"))似乎不起作用。

其他框架允许beans的weavingenhancement。Hibernate 4或其他引入的新功能允许代码不受hibernate特定扩展的限制,现在是否可以实现类似的功能?(一些配置当然是可以的。)

我已经检查了What's new in Hibernate 4?,看到他们在会话工厂上工作,但是我不知道它是否有帮助。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-01-12 21:48:45

对于除了request作用域之外的其他作用域的LazyLoading,hibernate 4似乎没有任何改进。

票数 0
EN

Stack Overflow用户

发布于 2011-12-14 18:34:34

Hibernate是一个JPA实现。只需通过JPA API使用它,就没有Hibernate特定的代码了。即使直接使用Hibernate API,延迟加载也是使用JPA注释配置的。在Hibernate中使用延迟加载不需要任何特定于Hibernate的注释。

OpenSessionInView过滤器/拦截器没有直接链接到延迟加载。它只允许在事务结束后让会话打开。无论如何,这个过滤器/拦截器不会强迫您在自己的类中包含任何特定于Hibernate的代码,所以我真的不知道问题出在哪里。

请注意,Spring也支持JPA ( Hibernate是一个JPA引擎),并且具有OpenEntityManagerInViewFilter/Interceptor,它们与OpenSessionInViewFilter/interceptor扮演相同的角色,但用于JPA。

票数 0
EN

Stack Overflow用户

发布于 2011-12-14 23:24:13

我认为在会话作用域中不应该有实体bean。您应该在会话范围内拥有值对象,如果需要,还可以在请求期间加载相关的实体bean。

您是否在使用扩展PersistenceContexts?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8502503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档