gpt4 book ai didi

java - 单个或多个实体管理器

转载 作者:行者123 更新时间:2023-11-30 03:37:40 28 4
gpt4 key购买 nike

我正在开发用于客户运输管理的 RESTful API(作为 Android 应用的后端)。

我使用 Jax-RS 与 Jersey、JPA2 与 EclipseLink 以及一个 MySQL 数据库。

我有不同的工作流程:简单的工作流程和依赖实体状态的工作流程。

简单的,例如身份验证或帐户创建或获取用户个人资料数据。

其他取决于实体的顺序和状态,例如:

  1. 客户创建类(class)时使用:course_status = "pending",司机会收到通知。
  2. 司机接受它,course_status:“taken”
  3. 司机到达,course_status:“准备就绪”
  4. 客户上车,course_status:“started”
  5. 他们到达目的地,course_status:“到达”
  6. 客户向司机付款,course_status:“已付款”

我的问题是:如何处理Entity Manager实例化?我应该为每笔交易实例化一个实体管理器吗?或者我应该仅使用一个具有单例模式的实体管理器实例?

最佳答案

我假设您正在开发 Java SE 解决方案或 Java EE Web 配置文件应用程序,即您的 persistence.xml 看起来像这样

<persistence-unit name="puName" transaction-type="RESOURCE_LOCAL">

在这种情况下,您将得到这样的 EntityManager

EntityManagerFactory emf = Persistence.createEntityManagerFactory;
EntityManager em = emf.createEntityManager;

您可以安全地将 EntityManagerFactory 引用存储在任何可以并发访问的内容中(单例实现注册表模式、静态字段或其他任何内容),因为此类是线程安全的。相反,EntityManager 不是线程安全的,每个线程都应该获得自己的 EntityManager 实例。

关于java - 单个或多个实体管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27470930/

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