java - 即使在使用@transactional 注释之后,如何在春季解决“当前没有活动的事务”?
问题描述
//--Service class--
@Service
public class myService implements myInterface {
@Autowired
private MyDao myDao;
//some code
myDao.updateMethod(/*some arguments*/);
//some code
}
//--Dao class--
@Repository
public class MyDao {
@Transactional(transactionManager = sample_a)
public void updateMethod(/*some arguments*/){
newUpdateMethod(/*some arguments*/);
}
@Transactional(transactionManager = sample_a)
public void newUpdateMethod(/*some arguments*/){
/* Actual call to DB taking place */
}
}
当我从服务类调用 updateMethod 时,它给出了与事务相关的异常- InvalidDataAccessApiUsageException - 当前没有事务处于活动状态,我是否@Transactional
以正确的方式使用?我也读过某处@Transactional
不应该在类中使用@Repository
注释,但我在 Dao 类中有其他方法,@Transactional
它们工作正常。
解决方案
上面的代码工作正常,问题出在事务管理器中。我正在使用不同的事务管理器。我用来更新数据的表在不同的数据库中。
推荐阅读
- css - @keyframes 滑块过渡
- sas - 序数响应的样本量和功效计算(序数逻辑回归)
- python-3.x - 具有单个表和 Min 原语的 Featuretools 会出错
- android - 当我运行应用程序时,Android Studio 内存不足错误
- java - 寻找从主字符串中删除单次出现的子字符串的方法
- terraform - 如何使用 Terraform 将 CloudWatch 日志(Lambda 函数的结果)导出到 S3
- android - android studio:插页式广告未显示在初始屏幕活动中
- javascript - 使用另一个数组元素进行数组解构
- python - 如何从 API Gateway 调用的 Lambda 函数访问 Cognito 用户属性
- perl - Perl while 循环使用 read()