通过em.clear()重用实体管理器或创建新的实体管理器?

use*_*754 8 jpa entitymanager jpa-2.0

在我的应用程序管理事务的情况下,我要选择:

  1. 在每次新交易之前使用一个单一EntityManager并调用clear().分享EntityManager使用a ThreadLocal.
  2. EntityManager为每个事务创建一个新的.

我对JPA没有多少经验.我的问题是哪一个在性能方面更好?

Jam*_*mes 9

我建议每个事务创建一个新的EntityManager.这是JPA的设计方式.EntityManager不应该是一个昂贵的对象来创建.(虽然EntityManagerFactory非常昂贵,但请确保您只有其中之一).