用于JPA读写选项管理的Spring Transaction

时间:2016-05-05 21:06:34

标签: spring multithreading jpa transactions eclipselink

我对Spring中的事务管理和实体管理器注入几乎没有什么困惑。

我有一个应用程序从表中读取数据并创建关系,如人有城市,搜索城市,并将城市分配给Person对象。

现在,当我根据不同的搜索条件(zip,名称,名称/州)搜索city,My City DAO / Repository搜索城市时。在这里我要求spring注入实体管理器进行查询。

当我存储我的Person对象时,我的DAO of Person要求注入Entity Manger,

现在的问题是,在多线程环境中将创建多少个Entity Manger对象以及这会产生什么影响,如果这是问题可能是更好的解决方案

1 个答案:

答案 0 :(得分:0)

每个"工作单元应该有一个EntityManager个实例" (通常是交易)。然后可以在提交后进行垃圾回收。实际上,这通常由容器管理,因此它将在幕后完成。

另一方面,EntityManagerFactory通常只应为每个持久性单元创建一次。