独立 JPA 和 entityManager

Stand-alone JPA and entityManager

我发现了这样的东西:

我的问题是:

答案:

  1. 独立意味着更多的东西,比如:你通过自己的 EntityManager 实例创建(相对于它们没有注入),你自己开始并提交事务,你负责传播事务(在哪个事务中执行哪个代码(例如不同服务的代码))。

  2. 事务划分是您开始、传播和结束事务的方式。如果您使用托管环境(使用 JTA),那么您可以以某种方式注释服务方法并控制不同服务调用之间的 "transaction is propagated" 方式。说:仅使用注释,您可以决定在调用 PersService.addPerson(Person person) 时自动开始事务 T1,并且在 AddressService.saveAddress(Address address) 中执行的代码(从 addPerson() 调用)在同一事务 T1 中执行(或者,如果需要,新交易 T2)。同样使用 JTA,不同的数据库可以在同一个事务中工作。

  3. 是的,Spring 可以而且几乎总是配置为作为托管环境工作。但它也可以配置为在独立模式下工作。其他已知的托管环境是 Java EE 环境(应用程序服务器,如 WildFly 或 Glassfish)。