问题标签 [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.
jpa - JaVers、SpringDatat、JPA:查询集合内的实体更新
我是 Stackoverflow 的新手,所以我会尽量适应使用情况。我想知道是否有办法获取给定实体的更改/快照的完整列表。现在它适用于奇异属性的版本,以及对集合属性的添加和删除。但我无法找到集合属性中的子实体何时更新。
给定两个实体和一个 LinkEntity:
我的用例如下。我通过 ID #1 获得了一个特定的人,然后改变了特定地址的类型(即 HOME --> WORK)。我用修改后的 Set 保存 Person 并让 JPA 级联我的更改。尽管 Person、Address 和 LinkPersonAddress 的所有 Spring Data Repositories 都使用 @JaversSpringDataAuditable 进行了注释,但我无法使用带有类 Person 和 Id #1 的 Javers QueryBuilder 检索此“更新”。这是有道理的,因为我应该改为查询类 LinkPersonAddress,但是我如何指定我只需要来自 LinkPersonAddress 的与 Id #1 相关的更改。
PS:请原谅代码片段中的任何拼写错误,因为我没有在我的开发环境中编写它。
auditing - 使用 Javers 进行审计时如何忽略父类中的字段
我有一个从其他实体延伸出来的实体,例如:
我需要审核 House 对象的更改,但我不想包含 Structure.field1 字段。我试过这个:
但它似乎忽略了“IgnoeredPropertied”。我也尝试映射结构类,但我不能,因为它没有 id。
关于如何忽略field1的任何想法?谢谢!
javers - 自定义比较器以反映多个更改以及更深层次的差异
我正在尝试为某些类实现 CustomComparators。我遇到的第一个问题是如何在我的 CustomComparator 中返回多个 ValueChanges。当多个字段可能已更改时,我似乎只能在该对象上返回单个 ValueChange。此外,我不知道如何让 Javers 为在我的 CustomCommparator 覆盖的类中显示为字段的对象生成差异。下面的例子:
我在下面定义了以下类,其中我们有一个拥有商店的人,该商店有他们在那里出售的物品。
问题: 1. 如何为 Store 实现 CustomComparator 以便它创建两个 ValueChanges:一个用于名称,一个用于位置。2. 我如何使用相同的 CustomComparator 让 Javers 也对项目进行比较?谢谢!
diff - Javers:比较两个json时忽略Value Object中的特定字段
作为测试的一部分,我正在尝试使用 Javers 比较两个 json,预期和 API 响应。我希望比较排除响应动态生成的 ID 参数。
我的VO就像
从 excel 文件读取的我的 expectedResponse- 和来自 API 的实际响应都被反序列化为这种格式,然后比较两个响应。
但是这种比较不会排除/忽略 ID 字段。知道如何让它工作吗?我只想在比较结果中排除 ID 字段,应列出名称中的差异。
还有问题 2> 我正在尝试列出来自 diff 的更改
change.getPropertyName() - 不打印属性的名称,而只是打印“_value”作为其值。
您能否帮助确定代码出了什么问题,我该如何解决这个问题?我在谷歌的任何地方都没有找到很多关于 Javers 的有用文档。任何帮助表示赞赏。
javers - 当呈现“NewObject”更改时,呈现对象之间的差异可能会很困难
我有以下内容:
我遍历更改并通过在该列中放置“是”来注意标题为“已更新”的 Excel 电子表格列中的差异。
例如,
有些行的名称会重复,因为同一行可能有多个电话号码(家庭、手机、工作)。
只要两个集合(行)中的行数相等,就可以正常工作。
但是,如果我在新报告中添加新行。我很难使用 Change.globalId 输出,其中索引帮助我能够在该行的更新列中标注“是”。
Javers 最终注意到所有行都已更改,而实际上它只是添加了一行,我认为这被认为是“NewObject”更改。
我想更新“更新”列并让它比较正确的行与旧报告中的 20 行和新报告中的 21 行并关闭。
有没有办法防止这种情况发生?或者您是否遇到过类似的事情并可以提供建议?
感谢您的帮助或任何建议。
hibernate - 仅将特别注释的属性与 JaVers 进行比较?
我有以下域模型。NB Jackson @JsonView 字段注释:
所以 - 我的问题是我只检索整个对象图的子图,例如,只有带有注释的字段的 Invoice 和 InvoiceLine 实体@JsonView(JSONInvoiceView.JSONInvoiceWithLinesView.class)
,即我没有更进一步,我没有检索 invoice.invoiceLine[i].good 实体。我的问题是 -我可以修剪 JaVers 差异过程,我可以要求 JaVers 仅比较对象图的子集 - 例如用 注释的子集@JsonView(JSONInvoiceView.JSONInvoiceWithLinesView.class)
吗?
我的问题提到了实体字段上的 Jackson @JsonView 注释,但我猜 - 如果 JaVers 支持对观察到的属性进行这种过滤,那么这种过滤可以通过任何适合字段/属性的注释集来完成 - 无论是 Jackson 还是自定义创建的。
我听说过@DiffIgnore JaVers 注释,我正在寻找这种机制的泛化和精简。
我的场景是 - 我正在检索子图,我将 ir 发送到 Angular 前端,然后我从 Angular 获取更新的子图,我想将它合并回我的后端。
javers - 为什么 Javers 在比较两个对象时不报告添加的正确行?
在比较两个相同大小的对象时,Javers 会进行一对一的比较。但是,如果向其中一个对象添加新更改(例如新行),则比较会报告未更改的更改。是否可以让 Javers 忽略添加/删除只是为了比较类似的对象?
基本上指数不同步。
新名单
因为添加了比尔,所以新的比较结果将显示第 4,5 行已更改,而实际上并没有更改。
谢谢。
mongodb - MongoDB 原子性与 Javers
我看到 Javers mongo 存储库将数据存储在两个不同的集合中。假设我使用 Javers 进行审计,并且我正在将我的域对象写入另一个集合,我想知道如何在这些持久性操作中保持原子性。Javers 是否执行某种两阶段提交以保持其两个内部集合之间的完整性?它是否为客户端应用程序的持久性操作提供了与审计日志同步的钩子?
javers - 可以在 Javers 中恢复提交吗?
我有一个场景,如果后续操作失败,可能需要恢复提交或浅删除。这在涉及 Mongo 的场景中特别有用,在这些场景中,集合之间没有可用的原子性。贾弗斯有可能吗?
java - 将实现相同接口的对象与 javers 进行比较
我正在使用 javers ( https://javers.org/ ) 并尝试比较实现相同接口的两个对象。作为一个例子,我用苹果和橘子设置了一个测试。Apples to Apples 工作正常,但不是 Apples to Oranges。它似乎运行了比较,但没有获取新值。
如果我有一个 Fruit 超类和扩展它的苹果和橘子,但接口没有运气,这很好用。任何熟悉这个 API 的人都可以为我指明正确的方向。
这是模型代码:
测试用例:
结果: