java - 如何在单个事务中调用2个重载方法?

标签 java spring service transactions dao

在控制器的不同位置调用了两种方法:
info是具有4个字段的模型类。

StudentInfo info = new StudentInfo(1,2,3,4);
studService.userUpdate(info);


在这里,我们通过一个过程将记录插入到dao中,此处未进行任何更改。

现在,我们在信息模型类中又添加了4个字段。

StudentInfo info = new StudentInfo(5,6,7,8);
studService.userUpdate(info, flag);


在这里,我希望方法1-8所有字段应只插入一条记录中。就像,当调用第一种方法时,它将插入4个字段,而当调用第二种方法时,它将在同一记录中插入其余的4个。
我该如何实现?可以在这里使用@transactional吗?

最佳答案

是!可以使用@Transactional,但可以确保方法级事务,即方法内的所有内容都执行或不执行。因此,仍然倾向于成为潜在的非事务代码块。

但是这种方法是错误的,您宁可将这两个对象合并为一个,然后执行插入操作。

我们应该做错代码,因为我们有一个功能,而不是总是追求最简单和逻辑的代码。

关于java - 如何在单个事务中调用2个重载方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56730031/

相关文章:

java - 如何使用struts2 <s :if> tag对列表类型的变量进行空检查

Java 绘制的对象未正确更新

java - 我应该在单 CPU 系统上使用串行 GC 还是 G1GC?

java - Spring amqp消费者在网络故障后不会重新连接到队列

java - 我在运行时创建的 Swing 组件未显示在 JPanel 中

java - 客户端如何处理长时间运行的休息调用中的延迟结果

java - 数据库宕机时C3p0重连数据库失败

php - 从 IOS 到 php 服务的 Base64 图像

android - 如何将String值从Service传递到android中的Activity?

android - 从 Activity 绑定(bind)到服务或在不同进程中启动服务?