转载请注明出处:

  在使用  @Scheduled 注解创建了一个定时任务,并通过定时任务不断向mysql写入数据,写入数据的方式是通过 jpa 的方式,在代码运行的过程中出现错误:no transaction is in progress。

  以下是异常堆栈:

  原因分析:

    该异常表明没有事务正在进行,导致无法访问数据持久化上下文。这个问题通常是由于事务管理器未正确配置或未正确应用到代码中引起的。

  解决方案:

    尝试了将@Scheduled和调用的service进行拆分,或是添加@Trasactional注解,以及修改定时任务的触发方式,一直没有生效,但是通过写controller,通过controller调用service中的方法,是可以调用成功,且数据写入成功。

    目的要通过定时任务触发进行写入数据时,一直事务不生效。

    最终解决方式,使用手动创建事务和提交事务,这时通过定时任务写数据便可以写成功。

    手动事务的关键代码:

@Service
public class MyService { @Autowired
private EntityManagerFactory entityManagerFactory; @Transactional // 添加事务注解
public void saveData(Object data) {
EntityManager entityManager = entityManagerFactory.createEntityManager();
EntityTransaction transaction = entityManager.getTransaction(); try {
transaction.begin(); // 开始事务 entityManager.persist(data); // 执行持久化操作 transaction.commit(); // 提交事务
} catch (Exception e) {
if (transaction != null && transaction.isActive()) {
transaction.rollback(); // 回滚事务
}
throw e;
} finally {
entityManager.close(); // 关闭实体管理器
}
}
}

异常:no transaction is in progress的更多相关文章

  1. @Transactional事务回滚异常:Transaction rolled back because it has been marked as rollback-only

    问题描述 事务设置手动回滚:TransactionAspectSupport.currentTransactionStatus().setRollbackOnly() 代码需要返回比较友好的提示,但t ...

  2. SqlServer try catch 捕获触发器\存储过程异常,结合 transaction 事务

    SoEasy~,贴上代码看所有 ALTER trigger [dbo].[tgr_SG_Gathering_update] on [dbo].[SG_Gathering] for update --更 ...

  3. exception throw in progress runner thread_VS2015中SVN源代码无说明提交异常

    1-问题描述:通过SVN将代码变更提交服务器时,你可能会遇到以下异常:  exception throw in progress runner thread 2-解决办法: SVN代码源代码管理和TF ...

  4. 【spring源码学习】spring配置的事务方式是REQUIRED,但业务层抛出TransactionRequiredException异常问题

    (1)spring抛出异常的点:org.springframework.orm.jpa.EntityManagerFactoryUtils public static DataAccessExcept ...

  5. Spring事务异常rollback-only

    转自:https://blog.csdn.net/sgls652709/article/details/49472719 前言 在利用单元测试验证spring事务传播机制的时候出现了下面的异常: Tr ...

  6. [转]How to nest transactions nicely - "begin transaction" vs "save transaction" and SQL Server

    本文转自:http://geekswithblogs.net/bbiales/archive/2012/03/15/how-to-nest-transactions-nicely---quotbegi ...

  7. mysql binlog_row_image的选择

    其含义为 The default value is full. In MySQL 5.5 and earlier, full row images are always used for both b ...

  8. Mysql事务开启方式(客户端+java手动+Spring Boot)

    一:概念 作为单个逻辑单元执行一系列操作,要么完全执行,要么完全不执行.举例 我们需要向数据库插入3条数据(我们希望这三条数据要么全部插入成功,要么全部失败), 比如第一条数据插入成功,插入第二条数据 ...

  9. org.apache.commons.net.ftp

    org.apache.commons.NET.ftp Class FTPClient类FTPClient java.lang.Object Java.lang.Object继承 org.apache. ...

  10. Flume 详解&实战

    Flume 1. 概述 Flume是一个高可用,高可靠,分布式的海量日志采集.聚合和传输的系统.Flume基于流式架构,灵活简单. Flume的作用 Flume最主要的作用就是,实时读取服务器本地磁盘 ...

随机推荐

  1. 消失的死锁:从 JSF 线程池满到 JVM 初始化原理剖析

    一.问题描述 在一次上线时,按照正常流程上线后,观察了线上报文.接口可用率十分钟以上,未出现异常情况,结果在上线一小时后突然收到jsf线程池耗尽的报警,并且该应用一共有30台机器,只有一台机器出现该问 ...

  2. 2023-06-28:你想要用小写字母组成一个目标字符串 target。 开始的时候,序列由 target.length 个 ‘?‘ 记号组成 而你有一个小写字母印章 stamp。 在每个回合,你可

    2023-06-28:你想要用小写字母组成一个目标字符串 target. 开始的时候,序列由 target.length 个 '?' 记号组成 而你有一个小写字母印章 stamp. 在每个回合,你可以 ...

  3. 采集douban

    # -*- coding: utf-8 -*-"""Created on Thu Oct 31 16:14:02 2019 @author: DELL"&quo ...

  4. Python 爬虫实战:驾驭数据洪流,揭秘网页深处

    爬虫,这个经常被人提到的词,是对数据收集过程的一种形象化描述.特别是在Python语言中,由于其丰富的库资源和良好的易用性,使得其成为编写爬虫的绝佳选择.本文将从基础知识开始,深入浅出地讲解Pytho ...

  5. LaTeX 的学习笔记

    摘自我的洛谷博客 该文章被打开的次数(包括洛谷平台): \(\LaTeX\) 中所有命令都以\开头,后面可以跟一个花括号,代表参数. \documentclass{} 指定了文章类型,有 articl ...

  6. 【xx-job】 定时任务调度

    XXL-JOB XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速.学习简单.轻量级.易扩展. 现已开放源代码并接入多家公司线上产品线,开箱即用. 一.任务调度中心 1.1 下载XXL- ...

  7. Day04_Java_作业

    A:选择题 1.下列哪个答案与show不是方法重载(b ). class Demo { void show(int a,int b,float c){} } A.void show(int a,flo ...

  8. Reactjs学习笔记

    本篇是关于React的简介 ReactJS是Facebook推出的一款前端框架,2013年开源,提供了一种函数式编程思想,拥有比较健全的文档和完善的社区,在React16的版本中对算法进行了革新,称之 ...

  9. Linux系统安装CH341驱动

    Linux系统安装CH341驱动 Linux系统(这里以ubuntu20.04为例)本身会自动安装CH340驱动,随着时间的推移,旧版本的驱动已经无法支持当下的CH340模块,所以我们需要重新安装驱动 ...

  10. vim 配色调整

    ~/.vimrc " Configuration file for vim set modelines=0 " CVE-2007-2438 set number " se ...