栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JPA Web应用程序管理策略

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JPA Web应用程序管理策略

更广泛使用的方法是创建

EntityManager
每个请求。但是,这应该对您隐藏。你应该使用一些依赖注入机制(春/ CDI /
EJB),将注射合适的
EntityManager
地方
@PersistenceContext
放置。

如果您对在某些情况下Bean是某种单例(一个无状态Bean /一个作用域单例的spring
bean)的普通情况下如何实现这一点感兴趣,那么容器实际上会在目标对象中注入一个代理。并且每次查询代理时,它都会获取 当前

EntityManager
实例,该实例(至少在spring的情况下)绑定到
ThreadLocal
(在这种情况下为request)

更新: 如果要在本地框架中实现此功能,请使用cglib / javassist /
JDK代理并将其注入到

@PersistenceContext
放置位置。一个请求=线程。在每个需要数据访问的请求上,创建一个新请求
EntityManager
并将其存储在中
ThreadLocal
。记住最后要清理它,因为servlet容器会重用线程。从代理可以获取当前
ThreadLocal
值。

但是,如果您不熟悉该项目,那么我建议您改用更稳定的东西,例如spring,cdi或guice。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/397730.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号