当前位置: 首页 > 面试题库 >

当我们需要多个EntityManager时?

梁丘璞瑜
2023-03-14
问题内容

我正在学习JPA,有一个问题:

在哪些情况下EntityManager,我们的应用程序需要多个?

我知道的两种情况如下:

  • 当我们的应用程序是多线程应用程序并且一个以上的线程需要JPA事务时,因为EntityManager它不是线程安全的,因此EntityManager每个线程需要一个线程。

  • 当任何一个线程需要多个并发事务时,EntityManager由于EntityManager和之间存在一对一的关系,因此在该线程中我们需要多个EntityTransaction

Q1。当我们需要多个条件时,还有其他情况EntityManager吗?

Q2。据我了解,EntityManagerFactory每个Percentnce Unit
只能有一个。我对么?如果不是,那么当我们需要多个EntityManagerFactory持久性单元时会发生什么情况?


问题答案:

问题1:EntityManager最好将其与“好旧的”休眠模式进行比较Session:一个工作单元(一种简单的业务操作,例如“登录用户”,“下订单”等)。它不一定要绑定到单个线程。如果不同的线程执行在单个工作单元中相互依赖的数据库任务,您只会遇到麻烦。您将需要同步执行它们(最好是在单个线程中顺序执行)。例如,如果您有在用户登录时清理一些“旧日志”的业务要求(这在合理范围内不会干扰彼此的信息),则可以在一个工作单元内的两个单独的线程中完美地执行它。

问题2:您的理解是正确的。但是,您可以创建多个应用程序,但这没有任何意义,也没有任何好处。这只会增加大量开销。



 类似资料:
  • 问题内容: 我的问题就像标题说的那样:为什么我们需要9个补丁的图像?他们真的那么重要吗?其实,他们真正在做什么?我没有清楚地了解9色块图像的概念。 我知道9补丁图像是可伸缩的。因此,假设我有一些完全适合我的ldpi设备的图像按钮。使用Draw 9-patch工具(android SDK的一部分),我可以标记可缩放区域,并且该图像非常适合hdpi甚至xhdpi设备。边缘会很光滑。 但这真的是很好的实

  • Segmentfault 存在的意义是什么? 尝试着 Stackoverflow 上找到过很多的答案

  • 本文向大家介绍为什么我们需要一个数据库,包括了为什么我们需要一个数据库的使用技巧和注意事项,需要的朋友参考一下 数据库是数据的集合,通常以电子形式存储。数据库的设计通常是为了使其易于存储和访问信息。 好的数据库对任何公司或组织都至关重要。这是因为数据库存储了有关公司的所有相关详细信息,例如员工记录,交易记录,工资详细信息等。 数据库重要的各种原因是- 管理大量数据 数据库每天存储和管理大量数据。使

  • 有三种典型的情况适合使用智能指针: 资源所有权的共享 要编写异常安全的代码时 避免常见的错误,如资源泄漏 共享所有权是指两个或多个对象 需要同时使用第三个对象的情况。这第三个对象应该如何(或者说何时)被释放?为了确保释放的时机是正确的,每个使用这个共享资源的对象必须互相知道对方, 才能准确掌握资源的释放时间。从设计或维护的观点来看,这种耦合是不可行的。更好的方法是让这些资源所有者将资源的生存期管理

  • 问题内容: Angular应用使用属性而不是事件。 为什么是这样? 问题答案: ng-click包含一个角度表达式。Angular表达式是在Angular 范围的上下文中求值的,该范围绑定到具有ng- click属性的元素或该元素的祖先。 Angular表达式语言不包含流控制语句,也不能声明变量或定义函数。这些限制意味着模板只能访问由控制器或指令提供的变量和运行功能。