为了账号安全,请及时绑定邮箱和手机立即绑定

Javers SpringBoot集成QueryBuilder byInstanceId返回空结果

Javers SpringBoot集成QueryBuilder byInstanceId返回空结果

达令说 2023-06-04 16:52:52
我正在使用此示例中的 springboot 集成:https://github.com/l7777777b/organization-structure这是我的分叉示例:https://github.com/javers/organization-structure使用 mysql 和最新版本的 Javers 5.6.3、gradle 5.4.1 和 springboot 2.1.6.RELEASE。首先我不确定它是否是预期的行为,但是更改和快照在使用时返回空结果QueryBuilder.byInstanceId,但在使用时QueryBuilder.byClass它显示正确。QueryBuilder.byInstanceId可以显示新插入数据的结果,对于现有数据(服务启动前数据库中已有的数据),它似乎没有被获取。要重现它:像往常一样运行服务./gradlew organization-structure-sql:bootRun创建新人 POST http://localhost:8080/view/person {     "id": 1,     "firstName": "Yang",     "lastName": "Huajie",     "sex": "MALE",     "salary": 22,     "position": "DEVELOPER" }更新它,改变任何属性使用此代码获取快照: QueryBuilder jqlQuery = QueryBuilder.byInstanceId("1", Person.class); List<CdoSnapshot> changes = javers.findSnapshots(jqlQuery.build()); JsonConverter jsonConverter = javers.getJsonConverter(); System.out.println(jsonConverter.toJson(changes));它应该显示一些数据,然后重新启动服务。或强制停止它并运行 1 号。通过运行 4 再次获得相同的快照,它应该显示空结果。除非我插入新数据,否则新插入的数据将被返回。但是如果我改成QueryBuilder.byInstanceId(personId, Person.class);我QueryBuilder.byClass(Person.class);可以正确地从数据库中获取所有结果,但我只需要搜索特定的 id 这就是我需要使用byInstanceId.
查看完整描述

1 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

它看起来像 id 是 Integer 并且您正在将 String 值传递给 byInstanceId("1"),请尝试将其更改为 int 并检查 ex。byInstanceId(1)



查看完整回答
反对 回复 2023-06-04
  • 1 回答
  • 0 关注
  • 133 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信