亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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));它應該顯示一些數據,然后重新啟動服務?;驈娭仆V顾⑦\行 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 關注
  • 183 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號