作为 S2JH: 基于SSH的企业Web应用开发框架 提供相关技术点介绍系列,一方面算是给出自己对某一个特定问题的设计实现思路分享供有兴趣朋友参考,另一方面也算是与大家一起探讨汲取各位同行更多更好的设计。更多框架相关技术文档可直接访问: https://github.com/xautlx/s2jh/wiki/Index
-------------------------------------------正文部分--------------------------------------------
概要说明
借助Hibernate Envers组件,实现对数据变更进行自动的审计记录,并增强扩展设计实现通用的历史版本数据列表和对比查看UI功能。
基本原理:就是为每个Audited的对象数据表创建一个对应AUD结尾的审计数据存储表,然后借助Hibernate Listener机制把对数据的增删改操作涉及的快照数据记录搬迁到AUD审计数据表。 因此审计数据表根据业务操作的频率可能增长会很快,可以考虑一些分库分区等优化措施来减少对业务数据存取效率的影响,启用此功能之前建议仔细阅读官方文档说明及考虑一定的调优措施。 Hibernate Envers
框架扩展
一般来说,Hibernate Envers记录的这些审计数据,主要用在以外丢失数据找回、审查数据合法性、辅助问题分析等用途,一般直接数据库SQL查询分析即可。
考虑到使用的便捷性,开发框架扩展提供了一个通用的UI功能,展示数据变更记录列表和不同版本对比查看视图。 框架提供的是一个通用的实现,因此可能存在一些不合理的地方,如对比视图可能会把一些用户不应该看到的、不应该显示的数据都呈现,因此在实际业务是否提供此UI视图可酌情考虑,或参考通用实现的基础上进行定制化处理。
- 版本列表视图:
- 版本对比视图:
关于列表界面“操作类型”,“原状态”,“新状态”,“操作说明”几个属性的处理
上述截图由于数据操作逻辑很简单,就是简单的修改,因此这几个属性都为空。实际审计的业务操作一般上述几个属性的处理,以某某审批操作为例:
操作类型: 用于标识业务操作动作,如“提交”审批,“审核”提交等操作,一般对应于Web Controller层面某个方法的的调用;
原状态,新状态: 一般业务操作都涉及到数据对象的状态变更,如“提交”操作涉及从“草稿”迁移到“待审”状态,“审核”操作涉及到从“待审”迁移到“审核通过”或“审核未过”状态变化等;
操作说明: 用于补充记录操作的原因、过程、结果等说明,如审核不过的原因等;
相关推荐
hibernate_reference-Hibernate Envers User Guide
实现原理 为每个Audited的表创建一个对应的审计数据存储表,然后借助Hibernate Listener机制把对数据的增删改操作记录到审计表。(由此引申出的问题:随着业务操作的频繁,审计表数据增长很快)。
hibernate官方文档集成系列源码,大家只需要修改一下数据库连接属性就可以在自己机器上运行了。
hibernate-envers-4.2.4.Final.jar
主要介绍了Springboot hibernate envers使用过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
使用的技术选择Spring-boot( )建立一个基于后端REST体系结构和使用AngularJS( )的前端实现的快速工作模型。会消耗这些服务。 Hibernate envers( )将用于审核对数据库行的所有更改,并查询特定时间点的更改。 ...
spring4.2+hibernate5环境开发全部jar包
针对某些实体类,要能查得到变化的历史痕迹。假如项目界面不需要考虑展示或可读性,只需要在数据库中入库变更版本,最简便且可靠的方式就是使用Hibernate envers他的部分配置及说明中文文档
包含hibernate所有所需jar包还有一些其他包日志包、...hibernate-envers-5.1.0.Final.jar hibernate-c3p0-5.1.0.Final.jar hibernate-jpa-2.1-api-1.0.0.Final.jar hibernate-java8-5.1.0.Final.jar ........ 总共41个
Hibernate Envers:审计人员,数据历史记录,VCS数据表 Hibernate搜索:全文搜索Apache Luceneíndices(职位:阿尔及利亚,同情心) Hibernate OGM:基于datos NoSQL的JPA soporte Diferenciar: JDBC JPA-...
Get started with the Hibernate 5 persistence layer and gain a clear introduction to the current standard for object-relational persistence in Java. This updated edition includes the new Hibernate 5.0 ...
Keep track of versioned data with Hibernate Envers Who This Book Is For Experienced Java developers interested in learning how to use and apply object-relational persistence in Java and who are new ...
概述 该应用程序演示了如何将与用于数据库记录的审计和版本控制。执照该示例应用程序及其关联的源代码全部按照以下许可条款提供。 Copyright (C) 2014Permission is hereby granted, free of charge, to any person ...
Hibernate Envers User Guide(中文版)
java运行依赖jar包
Spring Data Envers API(Spring Data Envers 开发文档).CHM 官网 Spring Data Envers API
这是一个Maven插件,用于验证由hibernate-envers生成/管理的审核修订的结构和内容。 此插件对表结构或内容并非始终由Envers生成的数据库特别有用。 例如,在数据库中,DBA有时会运行自定义脚本来解决高优先级问题...
hibernate-envers-5.0.7.Final.jar hibernate-infinispan-5.0.7.Final-tests.jar hibernate-infinispan-5.0.7.Final.jar hibernate-java8-5.0.7.Final.jar hibernate-jpa-2.1-api-1.0.0.Final.jar hibernate-...
Hibernate环境 有机会使用 Envers 对 eXo 的 wiki 实体进行版本控制
hibernate-envers-4.1.6.Final.jar hibernate-jpa-2.0-api-1.0.1.Final.jar javassist-3.15.0-GA.jar jboss-logging-3.1.0.GA.jar jboss-transaction-api_1.1_spec-1.0.0.Final.jar mysql-connector-java-5.1.20-bin...