我正在通过此示例使用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));
但是,如果我将QueryBuilder.byInstanceId(personId, Person.class);
更改为QueryBuilder.byClass(Person.class);
,则可以从数据库中正确获取所有结果,但是我只需要搜索特定的id,这就是为什么我需要使用byInstanceId
。
答案 0 :(得分:0)
它看起来像id是Integer,并且您正在将String值传递给
byInstanceId("1")
,能否请您将其更改为int并检查ex。 byInstanceId(1)