当前位置: 首页 > news >正文

解决Spring Data JPA set值后自动更新到数据库问题

出现问题:
通过EntityManager查询出数据保存到对象中,但是向对象set值后就自动更新到数据库中去了。

Hibernate对象的三种状态
1、瞬时态:对象刚new出来,还未通过save方法保存到数据库,或通过游离态对象、持久化态对象delete后。(既没有被保存到数据库中,也不处于session缓存中)

2、持久化态:通过从数据库查询出来,或瞬时态对象save保存后,或游离态对象update后)(已经被保存到数据库中同时也处于session缓存中)

3、游离态:通过持久化态对象关闭session,或通过evict、clear方法强制将持久化态对象清理出session。(已经被保存到数据库中但不处于session缓存中)
在这里插入图片描述

解决方法:
想办法把持久化状态的对象变成游离态就可以了。

  1. close 方法:关闭 session 可以,但是若后面还要用session这个方法就不好了。
  2. clear 方法:将 session 中的所有的对象全部清除出缓存
  3. evict 方法:将某一个对象清除出缓存 session(推荐)。

代码如下:

//spring注入entityManager//检查对象是否是持久化态
if(entityManager.contains(entity)){//获取sessionSession session =entityManager.unwrap(org.hibernate.Session.class);//转换成游离态session.evict(entry);
}
http://www.lryc.cn/news/542374.html

相关文章:

  • 心理咨询小程序的未来发展
  • STM32-智能台灯项目
  • c# —— StringBuilder 类
  • Linux 核心架构与组件(2025更新中)
  • Unity打包APK报错 using a newer Android Gradle plugin to use compileSdk = 35
  • 陀螺匠·企业助手v1.8 产品介绍
  • 文件包含-session2
  • GitHub免密操作与跨服务器通行:SSH密钥一站式配置指南
  • PHP入门基础学习四(PHP基本语法)
  • 模型蒸馏:让人工智能更智能、更小、更高效的艺术
  • git 小乌龟安装包及中文包
  • MySQL 主从集群同步延迟问题分析与解决方案
  • 用HTML5+CSS+JavaScript实现新奇挂钟动画
  • 医疗AI领域中GPU集群训练的关键技术与实践经验探究(下)
  • 解决双系统开机显示gnu grub version 2.06 Minimal BASH Like Line Editing is Supported
  • sysbench压测pgsql数据库 —— 筑梦之路
  • 数字IC后端培训教程| 芯片后端实战项目中base layer drc violation解析
  • Android之APP更新(通过接口更新)
  • 什么是 OCP 数据库专家
  • 基于AT89C51单片机的教室智能照明控制系统
  • DIP的实际举例
  • DeepSeek引领目标检测新趋势:如何通过知识蒸馏优化模型性能
  • vue2.x 中父组件通过props向子组件传递数据详细解读
  • 安装PHPStudy 并搭建DVWA靶场
  • RoCBert:具有多模态对比预训练的健壮中文BERT
  • 【C】堆的应用1 -- 堆排序
  • BGP配置华为——路径优选验证
  • 【原创】Windows11安装WSL“无法解析服务器的名称或地址”问题解决方法
  • 【CS285】高斯策略对数概率公式的学习笔记
  • R与RStudio简介及安装