我正在使用此示例中的 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。首先我不確定它是否是預(yù)期的行為,但是更改和快照在使用時(shí)返回空結(jié)果QueryBuilder.byInstanceId,但在使用時(shí)QueryBuilder.byClass它顯示正確。QueryBuilder.byInstanceId可以顯示新插入數(shù)據(jù)的結(jié)果,對(duì)于現(xiàn)有數(shù)據(jù)(服務(wù)啟動(dòng)前數(shù)據(jù)庫(kù)中已有的數(shù)據(jù)),它似乎沒(méi)有被獲取。要重現(xiàn)它:像往常一樣運(yùn)行服務(wù)./gradlew organization-structure-sql:bootRun創(chuàng)建新人 POST http://localhost:8080/view/person { "id": 1, "firstName": "Yang", "lastName": "Huajie", "sex": "MALE", "salary": 22, "position": "DEVELOPER" }更新它,改變?nèi)魏螌傩允褂么舜a獲取快照: QueryBuilder jqlQuery = QueryBuilder.byInstanceId("1", Person.class); List<CdoSnapshot> changes = javers.findSnapshots(jqlQuery.build()); JsonConverter jsonConverter = javers.getJsonConverter(); System.out.println(jsonConverter.toJson(changes));它應(yīng)該顯示一些數(shù)據(jù),然后重新啟動(dòng)服務(wù)?;驈?qiáng)制停止它并運(yùn)行 1 號(hào)。通過(guò)運(yùn)行 4 再次獲得相同的快照,它應(yīng)該顯示空結(jié)果。除非我插入新數(shù)據(jù),否則新插入的數(shù)據(jù)將被返回。但是如果我改成QueryBuilder.byInstanceId(personId, Person.class);我QueryBuilder.byClass(Person.class);可以正確地從數(shù)據(jù)庫(kù)中獲取所有結(jié)果,但我只需要搜索特定的 id 這就是我需要使用byInstanceId.
Javers SpringBoot集成QueryBuilder byInstanceId返回空結(jié)果
達(dá)令說(shuō)
2023-06-04 16:52:52