gpt4 book ai didi

jakarta-ee - jboss 是否为我处理托管实体管理器并发问题?

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

似乎 jboss 管理和提供的实体管理器实例是绑定(bind)到持久性上下文的实际实现的代理。

这个实际实现收集了 JTA 事务(每个事务上下文)提供的隔离。

这让我觉得在处理代理实例时我不需要担心并发问题。

如果我决定从 JNDI 查找而不是容器注入(inject)中获取它,也许我什至可以缓存这个代理实例?

这合理吗?

最佳答案

容器负责扫描@PersistenceContext EntityManagers 的注解和注入(inject).它可以代理 EntityManager 的实例.

在 EJB 中,容器负责依赖注入(inject),您可以确保自己是线程安全的。持久性上下文将在同一事务中的多个组件之间共享。

但是,如果你注入(inject)这个 EntityManager使用 @PersistenceContext在 Servlets 环境中(需要考虑并发性),您是 不是 线程安全的。您应该使用 @PersistenceUnit反而。您可以引用 JBoss 7 JPA Reference Guide 的这一部分:

Keep in mind that the entity manager is not expected to be thread safe (don't inject it into a servlet class variable which is visible to multiple threads).



前段时间我总结了我对JTA事务之间的持久性上下文共享和 EntityManagers的代理的了解。由容器发布 here .我希望你会发现它有用。

关于jakarta-ee - jboss 是否为我处理托管实体管理器并发问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8603478/

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