繁体   English   中英

EJB-CMT JPA刷新事务

[英]EJB-CMT JPA flush transaction

我正在使用JPA编写EJB-CMT bean。 在我的EJB方法中,我有一些持久性操作,需要在“持久”操作之一之后调用“刷新”。

这是我的示例代码:

@Stateless
@LocalBean
@TransactionManagement(TransactionManagementType.CONTAINER)
public class MyEjb {

    @PersistenceContext(unitName = "MyPU")
    EntityManager em;

    public void addSome() {
        User u = //;
        em.persist(u);

        em.flush(); // ----------- CALL FLUSH HERE

        UserGroup g1;
        em.persist(g1); // --- Add another

        UserGroup g2;
        em.persist(g2); // -- Add another
    }
}

我的问题是 :可以在一次交易中执行“ addSome”方法中的所有代码吗? 我知道,如果不使用“刷新”功能,则所有代码都将在一次事务中执行。

非常感谢您的帮助。

当然,您可以使用@TransactionAttribute来注释您的方法, value=REQUIRES_NEW ,您的方法将在单个隔离的事务中执行,并且从该方法返回时,实体管理器将被刷新,请在此处查看更多信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM