- 浏览: 502760 次
- 性别:
- 来自: 沈阳
文章分类
- 全部博客 (437)
- Windows设置 (2)
- oracle数据库 (39)
- bug--jsp (4)
- j2se (13)
- js (40)
- bug-tomcat不能启动程序 (1)
- Hibernate (29)
- eclipse (20)
- java (65)
- 设计模式 (6)
- bug (18)
- PL/SQL (11)
- 前台 (5)
- 杂谈 (25)
- UML (1)
- jdbc编程 (2)
- 技术调研 (1)
- 数据通信 (2)
- ios (1)
- servlet自学笔记 (10)
- tomcat (9)
- SQL学习笔记 (6)
- java工具 (1)
- 数据库设计 (4)
- javascript (10)
- jsp (11)
- struts (17)
- ajax (7)
- linix/Unix (6)
- 资源 (3)
- spring (14)
- 算法 (5)
- 计算机网络 (2)
- http (5)
- c++ (2)
- web应用 (3)
- jvm (5)
- java中的字符编码 (14)
- java代码库 (2)
- classloader (1)
- 读书笔记 (1)
- c (1)
- 开源软件 (1)
- svn (1)
- AOP (1)
- java序列化 (1)
- 多线程 (4)
- The legendary programmers (1)
- Apache http Server (1)
- html tag (3)
- struts1.X学习笔记 (5)
- buffalo (1)
- 自己收藏 (0)
- TOEFL(IBT) (1)
- 网络翻墙 (0)
- 编译原理 (1)
- 书籍推荐 (1)
- css (10)
- javaee环境搭建资料 (1)
- 开源工具 (1)
- 美国生活 (1)
- spring自学 (3)
- log4j (3)
- 算法与数据结构 (5)
- 病毒,插件处理大全 (1)
- flex (2)
- webservice (1)
- git (7)
- cs (1)
- html (4)
- javaee (6)
- 开车 (0)
- springmvc (3)
- 互联网架构 (2)
- intellij idea (18)
- maven (15)
- mongodb (2)
- nginx (1)
- react (3)
- java基础例子 (2)
- springboot (2)
- 培训 (5)
- mysql (3)
- 数据库 (3)
- 生活 (2)
- intellij (3)
- linux (2)
- os (3)
最新评论
-
潇洒天涯:
[color=blue][color=cyan] ...
oracle 通过 nvl( )函数sql 查询时为 空值 赋默认值 -
hekai1990:
受教了..
oracle中的varchar2
最近在项目中遇到一个奇怪的问题,在使用Hibernate拦截器捕获实体变化并进行处理时,发现其中的onFlushDirty()函数执行了很多次,导致进行处理时产生很多重复数据。具体问题如下:
使用一个类继承Hibernate的HistoryInterceptor类来对程序中的实体变化进行拦截,并在其中的onFlushDirty()函数中对捕获的数据进行处理,产生对应的event数据并保存到数据库中。 例如:
public class EventInterceptor extends EmptyInterceptor {
public boolean onFlushDirty(
Object entity,
Serializable id,
Object[] currentState,
Object[] previousState,
String[] propertyNames,
Type[] types ) throws CallbackException {
if(isAuditable(entity)){//如果该实体需要被记录,生成对应的event。
//此处生成对应的event。
}
return false;
}
在程序执行后,发现对应一条实体的变化生成了多条重复的event记录,非常不解。
后来google发现,有人也碰到过对应的问题,并在Hibernage论坛中提出过这个问题,鉴定为Hibernate的一个小Bug。
(原文地址:http://forum.hibernate.org/viewtopic.php?t=940410&highlight=interceptor+onflushdirty)
解决方法如下:
将FlushMode改为:FlushMode.COMMIT
或者也可以提前进行flush()
都可以解决这个问题。
发表评论
-
Hibernate:Envers 审计
2018-09-17 23:57 531https://blog.csdn.net/Silen ... -
【转】Spring3.3 整合 Hibernate3、MyBatis3.2 配置多数据源/动态切换数据源 方法
2016-12-13 15:07 703http://www.cnblogs.com/hoojo ... -
【转】Spring3 整合Hibernate3.5 动态切换SessionFactory (切换数据库方言)
2016-12-13 15:05 768http://www.cnblogs.com/hoojo ... -
Hibernate中的三种对象状态:
2015-11-15 18:33 416Hibernate中的三种对象状态: 1.瞬时(tr ... -
【转】Hibernate过滤器使用窍门
2015-09-08 17:13 553Hibernate过滤器(filter)是全局有效的 ... -
【转】Hibernate left join(左连接)
2015-08-26 17:27 1995如果是内连接的多表查询可以不用join关键字,在where ... -
【转】Hibernate 所有缓存机制详解
2015-08-26 14:50 655hibernate提供的一级缓存 hibernate是一个 ... -
【转】Hibernate中session的clear(),flush(),evict()方法详解
2015-08-26 14:22 10461.Clear 方法 无论是Load 还是 Get ... -
object references an unsaved transient instance - save the transient instance be
2015-04-15 10:17 912在做hibernate保存时出现异常object refer ... -
【转】An association from the table * refers to an unmapped class: *
2015-04-08 10:13 962解决方法:class路径没写正确。有三个地方需要注意1、< ... -
hibernate映射文件one-to-one 元素属性(转)
2013-01-07 19:13 835one-to-one 元素 属性: name:映射类 ... -
【转】Hibernate中重要对象的详解
2012-12-13 14:18 674★→→SessionFactory (org.hibernat ... -
【转】很详细的spirng+struts+hibernate实例
2012-12-13 14:17 2379本文并不想介绍Struts,Spring,Hiber ... -
【转】Hibernate中id标签
2012-11-19 14:32 846核心提示:Hibernate中,id标签下的可选gener ... -
【转】hibernate动态创建表,修改表字段
2012-10-22 18:50 1053我们知道,hibernate的tool工具中有个包hbm2dd ... -
【转】hibernate many-to-one(多对一)及 cascade(级联)
2012-09-19 16:18 804Model public class User { // ... -
报错:使用hibernate字符串超长
2012-09-13 17:47 1578在使用varchar2类型时必须指定其长度(最小1字节 ... -
包名不同的同名类的hibernate冲突
2012-09-13 14:38 1217在实际开发中,在有类a.b.c.POClass和a.b.c ... -
【转】hibernate自定义类型部分接口详解--用户自定义类型
2012-08-31 16:48 0UserType public interface Us ... -
ORA-00904: "THIS_"."C_UNIT": 标识符无效
2012-08-02 13:40 1577hibernate could not resolve pro ...
相关推荐
Hibernate4,Interceptor,spring,quartz
在Struts2中,Action、Interceptor、PreResultListener和Result构成了一个紧密协作的体系。每个组件在执行流中扮演着特定角色,确保了业务逻辑的正确执行和响应的适当渲染。`PreResultListener`的引入进一步细化了...
在这个“Struts+Hibernate一对多的管理系统”项目中,我们将深入理解这两个框架如何协同工作,构建出一个具备一对多关系的数据管理应用。在Java Web开发中,一对多关系非常常见,比如在一个用户可以拥有多个订单的...
EhCache是Hibernate的一个二级缓存插件,用于存储和检索数据,以提高性能。它在SessionFactory级别提供缓存服务,缓存对象可以是实体或查询结果。通过配置,开发人员可以选择启用或禁用特定区域的缓存,并设置缓存...
【hibernate动态分表】是一种数据库设计策略,主要用于处理大数据量的问题,通过将数据分散到多个物理表中,以实现水平扩展,提高查询效率,减轻单表的压力。在Java Web开发中,Hibernate作为一款流行的ORM(对象...
总之,"struts2整合hibernate的网上银行模拟项目"是一个实践性的学习项目,通过它,开发者可以了解如何在实际场景中应用Struts2和Hibernate,以及如何构建一个简单的网上银行系统。这个项目不仅涵盖了基础的MVC架构...
在这个"struts2+hibernate小项目"中,MyHibernateEx5可能是一个演示性的应用,展示了如何将这两者结合使用。可能的实现包括:使用Struts2的Action类处理用户请求,调用Hibernate的Session来查询或修改数据库,然后...
Hibernate3.2是其发展中的一个重要版本,提供了许多改进和新特性。 在《Hibernate3.2官方中文参考手册》中,我们可以深入学习到以下关键知识点: 1. **对象关系映射(ORM)基础**:ORM的核心思想是将数据库中的...
在Struts2框架中,**Interceptor(拦截器)**是一个关键组件,它允许开发者在特定的动作(Action)执行前后添加自定义的处理逻辑,极大地增强了应用程序的灵活性。 #### 二、Interceptor 概念与作用 Interceptor ...
Struts2是一个MVC(Model-View-Controller)框架,主要负责处理用户请求、控制业务流程,而Hibernate则是一个对象关系映射(ORM)工具,用于简化数据库操作,将Java对象与数据库表进行关联。 **Struts2框架** ...
这个"struts2+spring+hibernate整合小案例"是一个用于教学和实践的DEMO,旨在帮助开发者理解和掌握这三大框架的协同工作方式。 首先,Struts2作为MVC(模型-视图-控制器)架构的一部分,主要负责处理HTTP请求,提供...
1. **定义拦截器接口**:通常,我们会定义一个Interceptor接口,其中包含拦截器需要执行的方法,如`preHandle()`(方法调用前处理)、`postHandle()`(方法调用后处理)和`afterCompletion()`(整个请求完成后处理)...
4. **查看和编辑请求**:在Postman中,你可以看到Interceptor捕获的请求列表,选择一个请求,然后在Postman中对其进行查看、编辑或发送。 三、Interceptor在API工作流中的作用 1. **测试环境切换**:Interceptor在...
Hibernate 是一个开源的对象关系映射(ORM)框架,它允许Java开发者在数据库上操作对象,而无需编写大量的SQL代码。Hibernate 3.2.0 是该框架的一个版本,提供了许多改进和新特性,使得开发更加高效和灵活。中文官方...
在这个"简单的实现Web登录(struts2+Hibernate)"项目中,我们将看到如何结合这两种框架来构建一个基础的用户登录系统。首先,我们需要了解Struts2的核心概念,如Action、Result和Interceptor。Action是处理用户请求的...
Hibernate是一个对象关系映射(ORM)框架,它简化了数据库操作,而Struts2则是一个基于MVC(Model-View-Controller)设计模式的行动驱动框架,用于构建结构清晰、可维护性强的Web应用。将这两者结合使用,可以构建出...
Postman Interceptor是一个配套的Chrome和Edge浏览器扩展,它可以与Postman应用程序同步,实时捕获和发送浏览器中的网络请求。这个插件极大地增强了Postman的功能,允许开发者在浏览网页时查看并保存HTTP请求,这...
总的来说,Postman和Postman Interceptor的组合为API开发者提供了一个强大的工具链,无论是在日常开发还是在持续集成过程中,都能显著提升效率和质量。理解并熟练使用这两者,将对提升API开发和测试能力大有裨益。
在Postman的生态系统中,Interceptor是一个重要的组件,它扩展了Postman的功能,使其能够实时捕获和修改浏览器发送的网络请求。这个"Postman-Interceptor-V1.1.2.zip"文件就是Interceptor的安装包,版本为1.1.2,...
Struts主要负责MVC(Model-View-Controller)架构的实现,提供控制层的功能,而Hibernate则是一个强大的对象关系映射(ORM)工具,用于简化数据库操作。将两者整合可以创建出高效、灵活的Web应用程序。 **Struts 2...