Spring boot 如何将jpa存储库方法的操作(即保存)集成到xa资源事务中?

Spring boot 如何将jpa存储库方法的操作(即保存)集成到xa资源事务中?,spring-boot,jpa,spring-data-jpa,xa,2phase-commit,Spring Boot,Jpa,Spring Data Jpa,Xa,2phase Commit,我希望将jpa的crud存储库执行的操作作为xa事务的一部分,也就是说,它们应该在提交xa资源时提交 下面是save方法使用xa资源和saveTeam方法使用crud存储库方法(即save)的代码。我尝试了支持、不支持等参数的事务传播,但没有成功 public boolean save() throws Exception { OracleXADataSource oracleRootSource = new OracleXADataSource(); oracl

我希望将jpa的crud存储库执行的操作作为xa事务的一部分,也就是说,它们应该在提交xa资源时提交

下面是save方法使用xa资源和saveTeam方法使用crud存储库方法(即save)的代码。我尝试了支持、不支持等参数的事务传播,但没有成功

public boolean save() throws Exception {
        OracleXADataSource oracleRootSource = new OracleXADataSource();
        oracleRootSource.setUser("root");
        oracleRootSource.setPassword("root");
        oracleRootSource.setURL("jdbc:oracle:thin:@localhost:1521:xe");
        XADataSource xaDS = oracleRootSource;
        XAConnection xaCon = xaDS.getXAConnection("root", "root");
        XAResource xaRes = xaCon.getXAResource();
        Connection con = xaCon.getConnection();
        Statement stmt = con.createStatement();
        Xid xid = new MyXid(100, new byte[] { 0x01 }, new byte[] { 0x02 });
        xaRes.start(xid, XAResource.TMJOIN);
//      stmt.executeUpdate("Insert into school values ( " + 202 + ", 'Second')"); 
        this.saveTeam(new Team("second"));
        xaRes.end(xid, XAResource.TMSUCCESS);
        return true;
    }

    @Transactional(propagation = Propagation.MANDATORY)
    public Team saveTeam(Team team) {
        Team te = repo.save(team);
        return te;
    }

我希望在提交xresource时看到saveTeam方法所做的更改。当前,在save Team method中执行save method时,数据库中的更改是可见的。

在application.properties文件中添加此行
spring.jpa.show sql=true

使用spring.jpa.show sql=true,它显示查询,但我想在xresource提交后插入/保存entity。如果要使用此方法插入实体,可以