Hibernate envers在Hibernate4+Spring4中的配置

阅读更多

近期项目要增加一个新的功能:数据变更历史记录。即针对某些实体类,要能查得到变化的历史痕迹。

假如项目界面不需要考虑展示或可读性,只需要在数据库中入库变更版本,最简便且可靠的方式就是使用Hibernate envers。关于Hibernate envers的介绍,还是请看官网:http://docs.jboss.org/hibernate/orm/4.1/devguide/en-US/html/ch15.html

 

在这里,我对它的使用方法做一些描述,我的环境是Hibernate4(4.3.6)、Spring4(4.1.1),数据是MYSQL,Hibernate envers 我下载的是4.3.5的版本,因为在这样的开发环境下,旧的envers版本不适用(可能是4以下?至少,在网上搜索出来的大部分配置方法已完全不起作用)。

 

1、jar包下载

 

2、hibernate.xfg.xml: 在sessionFactory中添加envers的配置数据

  
       
      
        
		.....
	  
  	   update
             
             
           _revinfo  
             
             
             
           REV  
             
           REVTYPE  
             
           true  
             
           true  
             
           true  
             
           lzzf  
             
             
          ......
        
      
       

 

3、配置要记录的实体和属性

   @Audited表示要记录的实体

   @NotAudited标记在属性的get方法之上,表示该字段不作变更记录

 

@Audited
@Entity
public class CaseInfo implements java.io.Serializable {
......
 @NotAudited
   
 public String getEventStatus() {
   
     return this.eventStatus;
    
}
}

 

 

 

4、运行系统,可以看到数据库生成了两个表:

case_info_revinfo  :  数据变更版本记录,包括了实体的ID、字段值、版本号(修订编号)、操作类型

revinfo:修订编号、操作时间戳

 

5、当修改该实体类的某字段值时,这两个数据表的变化如下:

 

case_info_revinfo  :  数据变更版本记录,包括了实体的ID、字段值、版本号(修订编号)、操作类型
Hibernate envers在Hibernate4+Spring4中的配置_第1张图片
 

 revinfo:修订编号、操作时间戳

 
Hibernate envers在Hibernate4+Spring4中的配置_第2张图片
 

 

  • Hibernate envers在Hibernate4+Spring4中的配置_第3张图片
  • 大小: 9.3 KB
  • Hibernate envers在Hibernate4+Spring4中的配置_第4张图片
  • 大小: 4.6 KB
  • 查看图片附件

你可能感兴趣的:(Hibernate envers在Hibernate4+Spring4中的配置)