gpt4 book ai didi

java - 共享 EntityManager 上下文中使用的事务的范围是什么?

转载 作者:行者123 更新时间:2023-12-01 11:16:58 25 4
gpt4 key购买 nike

在 JPA 中:考虑以下示例,它使用容器管理的事务范围实体管理器。

public class ItemDAOImpl implements ItemDAO { 
@PersistenceContext(unitName="ItemService")
EntityManager em;

LoggingService ls;

public void createItem(Item item) {
em.persist(item);
ls.log(item.getId(), "created item");
}

// ...
}

public class LoggingService implements AuditService {
@PersistenceContext(unitName="ItemService")
EntityManager em;


public void log(int itemId, String action) {
// verify item id is valid
if (em.find(Item.class, itemId) == null) {
throw new IllegalArgumentException("Unknown item id");
}
LogRecord lr = new LogRecord(itemId, action);
em.persist(lr);
}

}

我的假设是否正确 ls.log() 方法
将使用调用方法的事务。
我现在对这些事情很困惑,你能帮忙吗?

最佳答案

如果您使用 EJB,那么这些方法很可能会使用相同的事务,因为 default transaction propagation方法。只需检查它们是如何配置的,因为它们似乎是在 XML 文件中配置的。

关于java - 共享 EntityManager 上下文中使用的事务的范围是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31705276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com