当前位置: 首页 > 知识库问答 >
问题:

仅在确定要提交但在提交之前拦截事务

顾喜
2023-03-14

上下文是带有Hibernate和Spring的Java-JPA。

让我们以两阶段提交协议的场景为例(但只有一个资源):

> 要从应用程序提交的

  • 查询

    3.2如果没有

    3.2.1回滚到数据库

    我想要的是一种在代码中从3.1.1进行回调的方法,但只有当知道事务将被提交,但在实际提交之前。另外,如果在这里抛出异常,则应该回滚事务。

      null
  • 共有1个答案

    白晋鹏
    2023-03-14

    您的情况是,您的一个资源与两阶段提交不兼容(不支持XA)。您的想法与第XA段中描述的模式以及http://www.javaworld.com/article/2077963/open-source-tools/distributed-transactions-in-spring--with-and-nowle-xa.html的最后一个资源策略有关

    在如何设置Spring Boot+Bitronix+non-XA Datasource+XA JMS连接的答案中简要说明了最后一个资源策略的使用

    顺便说一句,您的问题没有提到您使用的事务管理器的实现(JBossTS,Bitronix JTA,Atomikos transaction Essentials,...)。

     类似资料:
    • 我试图从数据库中选择数据,更新每个对象,然后在项目管理器中更新数据库。 我试图在每次更新后刷新DAO,但没有任何改变。 该配置非常基本,有一个读写器,提交间隔为100。 读者正在按预期工作: 作者也很基本: 问题是,前100条记录已经提交,但其余的记录没有提交。Spring批处理表显示,它读取所有记录并多次提交,但当我签入数据库时,它只提交一次。 Spring batch的版本是2.2.6。 使现

    • 我正在使用手动事务时插入/更新3个表。我想在事务提交后立即插入到历史表中。这意味着有3个操作(针对每个表),只有在提交这些操作之后,我才希望调用一个方法。 这是我的代码: 有什么post commit方法吗?如何在提交之后而不是持久之后调用方法?

    • 我无法使spring-Cloud-stream-binder-kafka适用于以下用例: 启动@事务(Rest控制器)DB更新/插入发送Kafka消息 在事务提交之前,使用者(使用@EnableBinding和@StreamListener配置)能够读取记录。此使用者已配置了read\u提交的隔离级别。 我不确定这是一个问题还是我这边的任何配置。 尝试配置bean ChainedTransacti

    • 下面是MultistepForm的代码。我已经实现了一个多步骤表单功能,所以这里一切都很好,只是问题是在这个表单中,我在最后一步有一个预览页面,所以当我点击提交按钮时,表单正在消失,按钮正在顶部移动。所以如果有人能帮我请。

    • 我在使用回发时遇到问题,因为我有多个表单,只能使用按钮。 如果我使用我的代码可以正常工作,但是如果我将名称更改为其他名称,将始终为false,为什么会发生这种情况? 编辑: 编辑2: 例如,此处,按预期工作(我可以保留值)为name=“submit”,如果按钮提交时(isset($\u POST['submit'])为true,但如果我同时更改name=”“和if(isset($\u POST['

    • 问题内容: 这应该很简单,但是却让我发疯。我有一个用ajax提交的html5表单。如果输入的值无效,则会弹出一个提示您的信息。在运行ajax提交之前,如何检查条目是否有效? 形成: 提交: 问题答案: 默认情况下,jQuery对HTML5验证一无所知,因此您必须执行以下操作: