问题标签 [javers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
51 浏览

java - 通过键查询 MapChange 和 EntryValueChange 的 JQL

是否可以构建 JqlQuery,它通过其键返回特定 EntryValueChange 的更改?就像是:

如果没有,手动过滤是唯一的选择还是我可以以某种方式扩展服务?

0 投票
1 回答
795 浏览

javers - 将 ID 为 NULL 的实体视为 NEW

对于“使用实体 ID 保存差异”这个问题,我找到了以下答案:

“对于实体,Id 属性不能为 null,因此您需要将此类映射为 ValueObject。如果是,则 Id 属性被视为常规属性,它不会转到该对象的 GlobalId。”

我的问题是:

如果 Id 为 NULL,为什么不能将实体视为 NEW?

我有一个从数据库中获取的对象图,在两个 javers 提交之间,一个实体被添加到图中的列表中。

  1. 两次提交,在第二次提交中有一个新实体(Id NULL)
  2. 获取更改 => 例外,因为 Javers 无法创建 GlobalId。

我可以通过执行 EntityManager 来解决这个问题 - 持久化(创建 Id:s),但我想避免这样做。当前的代码可能会在稍后进行持久化,或者它只是让事务完成。

因为 Id 为 NULL,所以实体是 NEW。是否可以生成一个唯一的临时 Id(允许 Id = NULL)来创建 GlobalId?在更改列表中,实体将被报告为 NEW。无需与较早的提交进行比较。

0 投票
2 回答
832 浏览

javers - Javers“jv_commit”不存在

我正在尝试使用我的项目设置 Javer。我正在使用 Hibernate JPA,我相信我已经正确配置了所有内容。

这是我的 Spring 配置:

JaversAuditController bean:

我必须使用 BEAN 映射样式,因为 JPA 注释在实体的访问器上。

这是 JaversRepoConnectionProvider bean:

}

我正在进行人工审核。也就是说,每次保存实体时,我都会调用 javers.commit() 方法。碰巧的是,我尝试保存的第一件事会导致 MySQL 语法错误,指出表“jv_commit”不存在。文档说明会自动创建必要的表,所以我一定遗漏了一些东西。请提前告知和感谢。

截断的堆栈跟踪:

0 投票
1 回答
1222 浏览

java - Javers 比较具有不同顺序的列表

我有两个具有相同数据但顺序不同的列表。

为什么 JaverscompareCollections方法会看到 Levenshtein 距离的两个变化(一个 ValueRemoved 和一个 ValueAdded)?

也许 Javers 不允许带有@Id注释的多个字段?

代码:

结果:

0 投票
2 回答
6037 浏览

spring - Javers - 使用 Javers 代替 Envers 有什么优势?

我正在使用 Spring Data REST 开发一个 RESTful API。现在对于审计,Spring 确实可以选择审计元数据created_datemodified_date但它们不提供实体版本控制。

目前有两个流行的实体版本库,即 Envers 和 Javers。我已经查看了两者的比较,但没有关于这个问题的任何文章。

那么使用 Javers 而不是 Envers 的优缺点是什么?

0 投票
1 回答
106 浏览

javers - 为什么我不能创建自己的 GlobalIdDTO 实例

为什么这不合法?

我们正在尝试从不在类路径中的 Object.class 中创建通用 api。既然最后都只是一个字符串,为什么我不能创建自己的 GlobalIdDTO 返回这个字符串?

这是我从 api 获得的堆栈跟踪:

有没有地方我应该能够注册这样的对象?

0 投票
3 回答
479 浏览

spring - Javers - 如何在 Spring Boot 中删除和创建 Javers 表?

jv_snapshot每次运行 Spring Boot 应用程序时,如何从头开始创建 Javers 表?

0 投票
1 回答
113 浏览

java - javers CdoSnapshot.SnapshotType 从 mssql 到 h2 不同

我尝试审核一个对象。我的问题是,我不是在每个数据库上都得到相同的结果。

我的实体:

测试方法:

在带有 openjpa 的 mssql 上,我的 systemout 如下所示:

更新

最初的

最初的

在 H2 上,结果看起来不同:

更新

更新

最初的

我会说第一个输出是错误的。不是吗?为什么他们不同。我做错了什么?

我为 mssql 创建了 javers,所以:

对于 h2:

任何想法?

谢谢

更新:

如果我在没有 openjpa 的情况下使用 mssql:

它按预期工作。

更新

更新

最初的

我对openjpa做错了吗?

更新 2 我用另一个实体(bob1)扩展了我的测试用例:

mssql 中的表 jv_snapshot 现在有以下记录:

第一个实体的第二个类型(初始)错误,并且版本也错误。第二个实体对我来说看起来不错。

它是一个错误吗?

0 投票
2 回答
649 浏览

javers - javers 的新手,如何从差异中迭代和获取所有属性名称

我是javers的新手。

我有两个具有属性的相同对象,我需要获取所有不同属性的列表。

这行得通

并显示

change=ValueChange{globalId:'com.stuff.Member/', property:'currentRank', oldVal:'Friend12', newVal:'Dimaon'}

虽然我认为它很简单,但我如何访问 Change 的属性?

或者我应该以不同的方式迭代不同的差异?

我的最终目标是获取不同属性的列表。

谢谢

0 投票
1 回答
263 浏览

javers - 仅保存 JV_SNAPSHOT 表上的更改而不是整个对象以供审核

我正在尝试实现 Javers 来审计我相当复杂的对象,到目前为止我很喜欢它。但是当我看到数据库时,会为我的对象保存整个快照,最终在我的用例中会变得庞大。由于我只使用 Javers 来审核更改而不是从快照中恢复对象,有什么方法可以让我在后续对象提交时只存储更改的属性?