gpt4 book ai didi

java - PostInsertEventListener 在数据库更新之前执行

转载 作者:行者123 更新时间:2023-12-01 15:42:08 24 4
gpt4 key购买 nike

我在监听器中放置了一个 Thread.sleep(50000) 来证明这一点,并且数据实际上没有存储在数据库中 50 秒。

这很奇怪而且相当令人失望,因为我将实体的 id(顺便说一句,就在那里)传递给 Web 服务,访问同一个数据库。如果我不在新线程中进行调用,Web 服务就会抛出异常,因为数据不存在。

我可以应用一种 hacky 方法,并在新线程中进行调用,之前可能会有一些时间延迟,但这会很难看

请帮忙。

最佳答案

这与插入是在监听器之后完成的事实无关。这与事务的提交是在之后完成的这一事实有关。您的 Web 服务使用另一个事务作为插入数据的事务,因此在插入事务提交之前它不会看到插入的数据。

您需要两阶段提交才能完成您想要的操作。通过 JMS 队列调用您的 Web 服务,并确保 JMS 引擎和数据库均由唯一的 XA 事务管理器处理。

关于java - PostInsertEventListener 在数据库更新之前执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7888540/

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