问题标签 [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 投票
2 回答
1248 浏览

java - 在模拟测试中,当比较的对象不为空时,为什么 javers 会抛出“参数不应该为空”?

我在我们应用程序的不同部分使用了 javers。现在我将它添加到另一个,并且得到一个 IllegalArgumentException: 参数不应该为空。但是我已经验证(通过序列化对象并记录它们)这两个对象在传递给 compare() 方法时不为空。

此外,这只发生在通过 Mockito 运行的单元测试中。我假设传入的对象的属性为空,这就是造成错误的原因。但是对于 javers 检测来说,null 属性不是一个有效的比较吗?

我正在使用 javers 1.1 版。

这是我的代码片段:

这是堆栈跟踪:

0 投票
2 回答
7731 浏览

java - 无法在杰克逊中处理复合键的托管/反向引用“defaultreference”

最近我遇到了这个错误,

无法在杰克逊中处理复合键的托管/反向引用“defaultreference”

我用谷歌搜索了很多,但发现以下选项可以使用,

JsonManagedReference 和 JsonBackReference

参考

但我的情况是,

如您所见,在子类中它有一个复合键。我无法更改它,因为它与 DB 有关系。

有人可以帮我解决这个问题吗?

注意:我正在使用 Jackson 2.4.3 我正在使用 Javers 1.2.9 进行对象比较

更新1:

根据建议,我删除了 JsonManaged 和 JsonBack 引用注释,并将 JsonIgnore 添加到 childId 类中的 Parent 属性。但是我在 Javers 上遇到了错误,

JaVers 运行时错误 - 不支持 Set of ValueObjects 的差异

0 投票
1 回答
176 浏览

java - Javers 查询语言的版本

我有一个关于使用 javers 的 JQL 的问题如果我有三个模型 x、y 和 z 的关系:

型号 x:

型号 z:

型号 y:

这是快照表中保存的示例:

对于 x 状态:

对于 z 状态:

对于 y 状态:

我的问题是如何通过测试从三个状态搜索中获取更改?

0 投票
1 回答
72 浏览

mongodb - InstanceID.value() 包含 typename 两次。这是对的吗?

InstanceId.value() 包含两次类型名是否正确?

结果,我的自定义类型“StateStructures.Framework”和一些 Guid MongoRepository.queryForSnapshots() 收到以下 bson 查询(并返回 0 个结果):

如果我从末尾手动删除“,StateStructures.Framework”,那么mongo会返回预期的行。

它看起来像一个错误:在 InstanceId.value() 中使用 typename 声明并在 InstanceId.getCdoIdAsString() 中再次附加它会使查询绝对不正确。相反,在 InstanceId.getCdoIdAsString() 中的持久字段迭代期间忽略类型名似乎可以解决该错误。

0 投票
1 回答
162 浏览

java - 如何访问属性?

从 1.4.0 版本开始,“PropertyChange 现在与 Property 分离,从 propertyChange 到具体属性的引用被替换为 propertyName String 字段。”

1.4.0 更改后访问属性的替代方法是什么?因为我想在属性中访问“looksLikeId”

0 投票
1 回答
224 浏览

javers - 访问 ReferenceChange 对象引用

我正在记录在对象图中所做的更改并收到 ReferenceChange(这是正确的):

有什么方法可以让我用 globalId: "JaversTest2$IntegerHolder/4" 检索实际的参考对象,因为我想记录实际的前后值?

0 投票
1 回答
777 浏览

javers - 比较javers中的两个列表

我有一个关于列表比较器的问题。我有一个带有表格的页面的 Web 应用程序。我可以编辑此表中的数据并删除行。标准比较器在我编辑数据时工作正常,但在删除行时出现问题。问题很常见(我认为)当我删除例如一行时发生了什么 javers 将旧列表与现在的列表进行比较,它看起来像这样:旧列表有两个对象现在列表有一个对象(我删除了第一个对象)现在 javers 没有'不知道哪个对象被删除,他将旧列表中的第一个对象与新列表中的第二个对象进行比较,对他来说整个对象都被更改了,这是不正确的。

我的想法是我将编写自己的列表比较器,并在此比较器中,在收集 javers 比较方法之前检查比较对象是否具有相同的 ID。不幸的是,我无法获取对象 ID。我的比较器看起来像这样

第二个列表“list2”有我的对象,我可以从中获取任何属性,例如 ID。第一个列表“list1”是带有一些 ValueObjectId 的列表,我不知道如何从对象 o1 获取带有 id 的属性。有没有办法获得这些信息,或者我做错了什么,请帮忙。

0 投票
1 回答
129 浏览

javers - 使用实体 ID 保存差异

我想保存两个实体的差异。旧实体的 id 女巫不为空。新的 id 有一个空值,所以我将它们作为 valueObject 进行比较。问题是 ValueChange 确实保存了差异,但没有保存旧的 id。我怎么能做到这一点?

0 投票
2 回答
618 浏览

javers - 永远使用的 Javers SQL 连接

我有一个数据库连接没有被 javers“释放”的问题。

我们使用 Hibernate 5.0.6,Hikari 作为我们的连接池,MSSQL Server 作为我们的数据库。Javers 配置如下(片段):

以这种方式获取连接可以正常工作。如果没有更多可用连接池,则连接池会打开数据库连接。但是,javers 获得的连接永远是“inUse”的。

我必须手动关闭连接吗?如果我尝试这个(一秒钟后关闭我给 Javers 的每个连接),连接池就会被清除。但是,这种方法不是一种选择。

有什么我想念的吗?如果我必须手动关闭连接,是否至少可以从 Javers 收到不再需要连接的通知?

0 投票
1 回答
148 浏览

javers - 如何查询作者

使用 javers 1.4.10,我们尝试显示由某个用户更改的所有对象。

有什么方法可以获取特定作者的更改?QueryBuilder 和 JqlQuery 显然不提供 API 来构建查询

tnx 和问候