何时使用 JEE JPA (EclipseLink 2.0) 提交事务?

When are transactions commited with JEE JPA (EclipseLink 2.0)?

何时使用 JPA (EclipseLink 2.0) 提交事务?

这是我的问题:

public void methodA()
{
    while(something)
    {
       methodB();
    }
}

public void methodB()
{
   //Insert new client into Client table.
}

假设 methodA 需要 10 分钟才能完成。如果我在 methodA 运行时查看数据库的客户端 table,我看不到任何行。这意味着在 methodB 结束后,事务未提交。但是如果我等到 methodA 完成,那么客户端就会出现在数据库中。

我希望在 methodB 结束后提交每个事务。我该怎么做?

编辑:我希望应用程序容器 (Glassfish) 负责 "commit"。我不想通过调用实体管理器来做到这一点。我正在寻找诸如 methodB() 上方的注释之类的内容。这两种方法都在单例 bean 中。

使用@Stateless EJB bean,事务在离开 EJB 时提交(默认)。

将 methodB() 放在单独的 EJB 中。(假设 methodA() 不是 EJB)