Javers - 使用 Javers 代替 Envers 的优点是什么?

2024-02-23

我正在使用 Spring Data REST 开发 RESTful API。现在对于审计,Spring 确实可以选择审计元数据,例如created_date and modified_date但他们不提供实体版本控制。

目前实体版本有两个流行的库,分别是Envers和Javers。我查看了两者的比较,但没有任何关于此事的文章。

那么使用 Javers 相对于 Envers 有哪些优点和缺点呢?


JaVers 和 Envers 之间有两个很大的区别:

  1. Envers 是 Hibernate 插件。 它与 Hibernate 具有良好的集成,但您只能将其与传统 SQL 数据库一起使用。 如果您选择 NoSQL 数据库或 SQL,但使用其他持久性框架,例如JOOQ https://www.jooq.org/——恩弗斯不是一个选择。

    相反,JaVers 可以与任何类型的数据库和任何类型的应用程序一起使用。 持久化框架。目前,JaVers 附带了 MongoDB 和 流行的 SQL 数据库。将来可能会添加其他数据库(如 Cassandra、Elastic)。

  2. Envers 的审计数据模型是应用程序数据模型的副本。正如医生所说:对于每个审计实体,都会创建一个审计表。 默认情况下,审计表名称是通过添加_AUD原名称的后缀。这可能是一个优势,您拥有接近实时数据的审计数据。恩弗斯的桌子看起来很熟悉。 使用 SQL 查询它们很容易。

    JaVers 使用自己的快照模型来审计数据。 快照与实时数据分离, JaVers 将它们保存到单个表中 (jv_snapshots)作为具有统一结构的JSON文档。 优点?您可以选择存储审核数据的位置。 默认情况下,JaVers 使用与应用程序相同的数据库, 但你可以指向另一个数据库。例如,用于应用程序的 SQL 和用于 JaVers 的 MongoDB 或为公司中的所有应用程序共享的集中式 JaVers 数据库)。

阅读这篇博文,其中包含 JaVers 与 Envers 的完整比较:https://javers.org/blog/2017/12/javers-vs-envers-comparison.html https://javers.org/blog/2017/12/javers-vs-envers-comparision.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Javers - 使用 Javers 代替 Envers 的优点是什么? 的相关文章

随机推荐

  • 在 Java 中读取和写入同一个文件

    我想读自criteria txt文件 以标记化并在同一文件的末尾附加标记 程序抛出异常 No file found 我不知道我的错误在哪里 任何建议都会对我有帮助 先感谢您 这是我的代码 import java io import java
  • 如何以 HTML 格式发送 PUT/DELETE 请求?

    我正在 PHP 中制作 REST API 我知道我可以通过以下方式捕获请求方法 SERVER REQUEST METHOD 但是 如何在浏览器中触发 PUT DELETE 请求 我无法想象更改表单标记的方法属性以指定除 GET 或 POST
  • 线程只运行一次

    当线程完成后 您无法使用 start 方法再次运行它 它会抛出异常 谁能解释一下 为什么 这样的架构决策背后的原因是什么 因为在单独的线程中执行代码的方法不是创建一个线程 这与什么是线程的系统视图相关 关于绿色线程和系统线程之间的区别有无穷
  • 防止刷新时插入重复记录而不重定向

    我有这样的脚本 if isset POST comment posted user comment mysql real escape string POST user comment add user comment Event addU
  • 如何获取Unity中正在注入的对象的类型?

    我有一个类型在其构造函数中接收另一个类型 该类型通常是创建它的对象的类型 例如 public class Logger public Logger Type parent 我想指示Unity解决Logger将需要它的对象的类型作为参数传递给
  • WCF Rest 4.0 中不带尾部斜杠的简单 URL 路由

    我有一个基于 WCF REST 服务模板 40 CS 的 WCF REST 4 0 项目 我想公开简单的服务端点 URLwithout尾部斜杠 例如 CarService cs http www domain com cars http w
  • 工具箱 Visual Studio 2015 中缺少报告查看器标记

    我最近安装了 Visual Studio 2015 Community 现在我的工具箱没有报表查看器标签 我的 ASP NET 项目中所有现有的报表查看器都显示 创建控件时出错 我已经检查了所有参考文献 它们似乎没问题 当我运行项目时 报告
  • 如何使用 swt 向表中添加行

    我正在学习 swing 并对将行插入到表格有一个疑问 我的要求是我必须通过按添加按钮添加新行 但我无法继续 请找到下面的代码 如果有人知道请帮助我 public class TableShellExample Display d Shell
  • 如何计算sklearn中交叉验证的每个模型中的特征重要性

    我在用RandomForestClassifier with 10 fold cross validation如下 clf RandomForestClassifier random state 42 class weight balanc
  • 如何在车把模板中使用 {{{{raw-helper}}}}

    我有一个效果很好的车把模板 我希望能够将以下内容放入其中 这显然会在处理车把文件时呈现 所有的 最终都是空白的 这不好 我找到了 raw helper 块助手 并像这样尝试 raw helper
  • 按比例随机将 NA 插入到数据帧中

    我有一个完整的数据框 我希望将数据框中 20 的值替换为 NA 以模拟随机缺失数据 A lt c 1 10 B lt c 11 20 C lt c 21 30 df lt data frame A B C 谁能建议一种快速的方法来做到这一点
  • 获取最大值之前的值

    例如 给定这个稀疏 id 表 id 1 2 3 6 7 我可以使用以下查询从表中获取最高的 id SELECT max id FROM Comics I get id 7 如何获取最高 id 之前的 id 即使值不连续 一般来说 您可以首先
  • VSTO 写入 Excel 中的单元格!

    为什么这有效 Excel Worksheet Application ActiveSheet get Range A1 A1 Value2 text 但这并没有 Excel Worksheet activeSheet Excel Works
  • 泛型作为方法返回类型

    我在 StackOverflow 上四处寻找我面临的问题的答案 我遇到了很多好的答案 但仍然没有回答我的问题 Java中通过反射获取泛型参数的类型 https stackoverflow com questions 1901164 get
  • 在discord.py中添加角色

    我尝试了许多不同的方法 并在 youtube 上进行了搜索 但我尝试的所有方法都不起作用 已过时或不相关 如何向提到的用户添加角色 这就是我的代码 你看 最后我在 里写的 client command commands has permis
  • 根据用户权限隐藏/禁用 GUI 元素的最佳方法?

    我正在启动一个 Web 应用程序 其客户端在纯 ExtJS 中实现 中间层在 Grails 中实现 该应用程序具有基于角色的授权 其中用户可以拥有许多细粒度的角色 例如 SOME FORM READ SOME FORM UPDATE SOM
  • Perforce:p4 集与 p4 信息

    我最近开始在 Windows 7 上使用 perforce 我使用 P4V 在我的本地计算机上同步了 perforce 我试图运行一些其他工具 该工具使用我的 perforce 本地目录映射到我的计算机上的路径 看来它捡错了 在尝试调试时
  • org.springframework.web.client.ResourceAccessException:微服务中的 GET 请求出现 I/O 错误

    我正在从链接开发微服务代码 https github com sivaprasadreddy spring boot microservices series https github com sivaprasadreddy spring
  • 如何删除 VBA/Excel 中 X 行下方的所有内容?

    我有一个包含数字的长变量 X 说是415 如何删除工作表中第 415 行及以下行的所有内容 我想确保电子表格的第 415 行及其下方的任何其他内容都是干净的 我该怎么做呢 谢谢 听起来像下面的内容会满足您的需求 With Sheets Sh
  • Javers - 使用 Javers 代替 Envers 的优点是什么?

    我正在使用 Spring Data REST 开发 RESTful API 现在对于审计 Spring 确实可以选择审计元数据 例如created date and modified date但他们不提供实体版本控制 目前实体版本有两个流行