EntityManager 是否使用 @PersistenceContext 注入到 @RequestScoped CDI bean 线程安全?

问题描述 投票:0回答:1

在 Java EE Web 应用程序项目中,有一个 DAO 注释为 CDI bean:

@RequestScoped
public class CustomerDAO {
  @PersistentContext
  private EntityManager em;
  //some persistence operation afterwards
  @Transactional
  public void update() {
  //implementation using the injected em
  }
}

根据 JPA 规范,注入的

EntityManager
不是线程安全的,但问题是:

每个请求将

EntityManager
注入到此
@RequestScoped
CDI bean 是线程安全的吗?如果不是线程安全的,可能会出现哪些潜在的并发问题?

jpa jakarta-ee thread-safety cdi
1个回答
0
投票

如果您考虑一下,没有任何内容可以跨线程共享,实体管理器被注入请求范围并在请求完成后释放,但如果您对并发有疑问,请使用多版本并发控制。

© www.soinside.com 2019 - 2024. All rights reserved.