Hibernate更新出错的解决

开发 后端
本文讲述的是项目中遇到的Hibernate更新出错的问题,先交代了所遇到的Hibernate更新出错的具体情况,然后根据具体情况进行分析解决。

今天在项目里遇到这样一个问题,使用Hibernate进行修改操作saveOrUpdate()或者是update()时出了这样一个错误,即Hibernate更新出错。根据异常信息的字面意思,大致意思是说, 在一个session对象中同时存在着重复的相同标识的却是不同的对象。

我遇到的情况是这样的,客户端进行插入操作,这个时候所插入的这个对象缓存在session中,而用户在插入后又对同一个对象,进行修改操作,那么这个时候,同样标识的一个对象又发送到服务端,那么一个session中就存在了两个标识相同的对象,而对象中的内容却不一样,所以Hibernate会报这个错,同样是Hibernate更新出错。那么针对于这种Hibernate更新出错,该如何解决呢?

应该有许多种方法,这里我用了session.clear()在每次更新操作之前,先把session清空掉。代码如下:

  1. public int saveOrUpdate(String classPath, Object obj) {  
  2.     
  3.    try {  
  4.       
  5.       
  6.     getSession().saveOrUpdate(classPath, obj);  
  7.  
  8.     //每次操作之后清空session  
  9.  
  10.     getSession().flush();    
  11.  
  12.     getSession().clear();   
  13.      
  14.    } catch (RuntimeException re) {  
  15.     re.printStackTrace();  
  16.    }  
  17.  

这只是对我所遇到的Hibernate更新出错问题的解决办法之一,如果哪里说的不正确希望大家批评指正,互相学习。

【编辑推荐】

  1. 初学者适用的Hibernate学习方法
  2. Hibernate实战(第2版)读书笔记
  3. Hibernate一对多关系的处理
  4. 十五道Hibernate面试题及答案
  5. Hibernate的性能优化
责任编辑:仲衡 来源: qiongzhang的博客
相关推荐

2013-08-13 11:34:26

2021-08-17 15:10:14

Windows 功能系统

2009-09-24 10:13:05

Hibernate版本

2010-02-06 09:20:08

保护盾MSN无法启动

2009-09-24 09:45:23

Hibernate批量

2021-10-31 12:46:28

微软Windows 11Windows

2009-06-12 14:44:30

Hibernate A批量更新

2010-05-25 15:32:39

MySQL 中文问题

2009-09-22 17:32:38

Hibernate A

2009-09-25 11:34:54

Hibernate处理Hibernate批量

2010-02-23 09:33:39

Hibernate批量Hibernate批量

2020-08-17 17:03:58

Windows 10Windows操作系统

2009-09-21 17:10:14

struts Hibe

2010-11-08 16:16:57

SQL Server远

2010-11-24 17:21:02

MySQL命令行

2010-10-19 12:22:02

SQL Server远

2019-09-11 08:29:40

Chrome浏览器chromebookChrome OS

2009-06-17 11:47:21

Hibernate 删

2010-10-19 11:08:00

SQL Server安

2010-05-25 18:12:19

MySQL 安装
点赞
收藏

51CTO技术栈公众号