我想用相同的方法在一个事务中插入/更新两个表中的记录。
首先插入表1,如果成功,则更新表2,然后如果两者都成功,则只提交,否则不提交(在两个表中)
我的代码如下所示:
@Transactional
public void persistTable1AndTable2() {
persistTable1(List<Table1Entity>);
updateTable2(List<Table2Entity>);
}
但是当我测试代码时,如果我在持续表1行之后终止进程,它仍然会在第一个表中插入记录。所以它不认为这是块事务。
我用的是mysql。
补充一下:上面的表1和表2都使用单独的事务管理器和entityManagerFactory
有人能帮忙吗
[编辑]
使用atomikos API配置JTA的代码。
//Atomikos related JTA configuration
@Bean(name="userTransactionServiceImp")
public UserTransactionServiceImp userTransactionServiceImp()
{
Properties properties = new Properties();
properties.setProperty("com.atomikos.icatch.max_timeout", "600000");
UserTransactionServiceImp userTransactionServiceImp = new UserTransactionServiceImp(properties);
return userTransactionServiceImp;
}
@Bean
@DependsOn("userTransactionServiceImp")
public UserTransaction userTransaction()
{
UserTransactionImp userTransactionImp = new UserTransactionImp();
return userTransactionImp;
}
@Bean
@DependsOn("userTransactionServiceImp")
public TransactionManager userTransactionManager()
{
UserTransactionManager userTransactionManager = new UserTransactionManager();
userTransactionManager.setStartupTransactionService(false);
userTransactionManager.setForceShutdown(false);
return userTransactionManager;
}
@Bean
public PlatformTransactionManager transactionManager()
{
return new JtaTransactionManager(userTransaction(), userTransactionManager());
}
并配置jparepo我有下面的配置类:
@EnableJpaRepositories(basePackages = {"daemon.repository.entities"},
transactionManagerRef="transactionManager", entityManagerFactoryRef = "eventsEntityMF")
我在这里找到了一个类似的例子
快速查看一下http://fabiomaffioletti . me/blog/2014/04/15/distributed-transactions-multiple-databases-spring-boot-spring-data-JPA-atomikos/
查看是否缺少某些配置
批量订单 Purchorder 我已经试了一个星期了。我有这两个表,batchporder和purchord在batchporder表中,我需要插入一行,并获得传递给purchord插入的主id。在purchord中,我需要插入多行,因此我使用了insert\u batch。 控制器 模型 错误1 遇到PHP错误严重性:警告 消息:array_keys()要求参数1为数组,字符串为给定值 文件名:
问题内容: 我有上面的表格(非常简化的示例),我要在一个表格中插入订单的详细信息和订单的详细信息。 我熟悉事务,可以使用如下所示的SQL命令插入数据: 但是,理想情况下,如果可能的话,我希望有一个类似上述查询的函数,而不是存储在我的应用程序中。 谁能指出我为postgres函数提供多个记录的正确方向吗?另外,如果我想做的事情被认为是不好的做法,请让我知道我应该遵循的其他路线。 提前致谢。 问题答案
在一个表中有两列可以是来自同一表的外键,这样可以吗? 例如: 我有一个“address”表,表中有列: id,street,city_id,state,country(或id,street,city_id,state_id,state_id) 我有一个'states'表,保存状态和国家:id、name、level 那么我可以把states_id放在地址表的state和country中吗(如上面的括
我写了一个启动两个线程的代码片段;一个线程打印所有奇数,而另一个线程打印所有偶数。我使用了内在锁和线程通信命令的组合来实现两个线程的正确交叉。这是我的代码, 以下是我的问题: > 奇数线程在printOdd()函数中执行,而偶数线程在print偶数()函数中执行。我对两个线程都使用一个内在锁;我不明白两个线程怎么能同时存在于各自的同步块中,因为使用了相同的锁。 我从代码中删除了线程通信语句(通知,
我改变了切入点的顺序,它总是排在第二位。关于如何解决这个问题有什么想法吗? 更新 一旦我发布了这个问题,我就有了一个想法。我这样更改了切入点: 现在异常消失了,但仍然有一个小问题(我想这个问题更容易解决):因为ArrayList实现了可序列化,所以至少在我使用ArrayList的测试用例中,两个切入点都被执行了。 我将对此进行研究,并发布我的发现,但也感谢您的帮助;) 我将代码改为只使用一个切入点
问题内容: 所以我有两个包含主键’User’的模型 现在,我想查找也在中的用户的所有评论。例如,假设 用户“ 1”* 为 用户“ 3” 和 用户“ 5” 分别撰写了一条评论 * 现在,我输出的应该是对应于“ LoremIpsum1”的评论对象,即其subject_user也存在于中的评论对象。我尝试了以下 但这给了我所有的评语 编辑: 这是我插入评论的方式: 问题答案: 如果我对您的理解正确,这应