mybatis-plus的Iservice接口的save方法,返回true,但是数据库表里却没有看到新记录

news/2024/10/17 19:40:19/

背景

需求是记录下操作过数据库的行为,将其记录到一个操作行为表中,我选择了使用aop特性来实现这一功能,发现当操作行为一切正常时,这个mybatis的save方法正常执行,行为表里正常增加记录。但是当操作行为抛出异常时,这个save方法也正常返回true,但是行为表里就是没有新增记录。(这篇博文遇到的是跟我这个类似的情景,但是它的catch不需要继续抛捕获到的异常。)

解决

经过gpt提醒,先打印了sql日志(springboot项目开启sql日志),发现sqlSession在关闭前并没有commit,说明事务发生了回滚,查阅资料得知,异常会导致回滚,因为我使用@Around包裹的操作行为,操作行为抛出的异常被切面catch了以后,还是要继续抛出去(因为有一个专门的ExceptionHandler来处理这些异常),所以在catch里抛异常会回滚事务,save也被回滚掉了。
我问gpt解决方法,它让在finally里进行save,但是这个save语句要被包裹在一个try-catch里,我不知道为什么要这样做,但是确实有效,还望大佬们答疑解惑。(这篇博文点了一下可能的原因,但是我还是没看懂)


http://www.ppmy.cn/news/1539788.html

相关文章

Pandas缺失值处理

目录 NaN 加载包含缺失的数据 查看缺失值 通过info函数查看缺失值 通过isnull函数查看缺失值 通过notnull函数查看缺失值 通过isnull().sum()统计空值 缺失值处理 准备数据 dropna删除缺失值 fillna平均值填充缺失值 fillna前后值填充缺失值 interpolate线性插值 …

《京东金融APP的鸿蒙之旅系列专题》鸿蒙工程化:Hvigor构建技术

作者:京东科技 杨拓 一、构建工具概述 Hvigor构建工具是一款基于TypeScript实现的构建任务编排工具,专为提升构建和测试应用的效率而设计。它主要提供以下关键功能: 1.任务管理机制:包括任务注册和编排,帮助开发者高效…

2024 kali系统2024版本,可视化界面汉化教程(需要命令行更改),英文版切换为中文版,基于Debian创建的kali虚拟机

我的界面如下所示 1. 安装 locales sudo apt install locales 2. 生成中文语言环境 sudo locale-gen zh_CN.UTF-8 如果你希望安装繁体中文,可以加入: sudo locale-gen zh_TW.UTF-8 3. 修改 /etc/default/locale 文件 确保有以下内容 LANGzh_CN.UT…

文本生成视频技术:艺术与科学的交汇点

在人工智能技术的飞速发展下,文本生成视频(Text-to-Video)技术已经成为现实。这项技术能够根据文本描述生成相应的视频内容,极大地拓展了内容创作的边界。本文将从三个主要方面对文本生成视频技术进行深入探讨:技术能达…

解锁C++多态的魔力:灵活与高效的编码艺术(上)

文章目录 前言🌸一、多态的定义与概念🌻1.1 多态的核心思想:🌻1.2 多态的两种主要形式: 🌸二、多态的使用条件🌻2.1 基类指针或引用2.1.1 为什么需要基类指针或引用 🌻2.2 虚函数&am…

【计算机网络】详解IP协议网段划分路由转发子网掩码网络号

一、IP功能 IP可以实现主机定位和路由选择,提供一种能力,将数据可靠地从A点跨网络送到B点。数据先根据目的IP在局域网之间进行转发,再在局域网内进行内网转发。 二、IP协议报头 4 位版本号(version):指定 IP 协议的版本&#xff…

SpringAI快速上手

一、导入依赖 镜像&#xff08;导入maven依赖&#xff09; <repositories><repository><id>spring-snapshots</id><name>Spring Snapshots</name><url>https://repo.spring.io/snapshot</url><releases><enabled>…

【网易云音乐】--源代码分享

最近写了一个网易云音乐的音乐实现部分&#xff0c;是通过JavaScript和jQuery实现的&#xff0c;具体效果大家可以参照下面的视频 源代码分享 - git地址: 网易云音乐源代码 下面将着重讲解一下音乐实现部分 视频有点模糊&#xff0c;不好意思&#xff0c;在b站上添加视频的时候…