gpt4 book ai didi

java - JPA : multiple transactions

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:14:34 25 4
gpt4 key购买 nike

我正在尝试对同一个事务实体进行 2 个不同的数据库调用。我知道我可以在 begin()commit() 之间进行询问,但我只是出于教育目的而尝试这样做。

EntityTransaction transaction = em.getTransaction();
EventService eventService = new EventService();
transaction.begin();
Event currentEvent = eventService.read(eventId);
transaction.commit();

if (currentEvent != null){
CommentService commentService = new CommentService();
transaction.begin();
commentList = commentService.getList(1, id, 50);
transaction.commit();
}

这段代码抛出:

Exception Description: Transaction is currently active

这很正常,因为我正在尝试对已打开的交易执行 begin()

每当我必须使用数据库时,排除第二个 transaction.begin() 并只使用 commit() 是否正确?

语言:我正在使用 EclipseLink 和 RESOURCE_LOCAL

最佳答案

发生这种情况是因为 transacton-type 设置为 RESOURCE_LOCAL。在这种情况下,您必须创建一些 SingleTon 类来处理 EntityManagerEntityTransaction

关于java - JPA : multiple transactions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9003360/

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