Javers 查询返回空结果

Posted

技术标签:

【中文标题】Javers 查询返回空结果【英文标题】:Javers query returning empty results 【发布时间】:2021-03-18 06:17:28 【问题描述】:

在我的 mysql 数据库中,我有审计表:

global_id_pk|local_id|fragment|type_name                                         |owner_id_fk|
------------|--------|--------|--------------------------------------------------|-----------|
           1|3014    |        |de.cc.carorderprocess.models.Car    |           |



snapshot_pk|type   |version|state |changed_properties                                   |managed_type                        |global_id_fk|commit_fk|
-----------|-------|-------|------|-----------------------------------------------------|------------------------------------|------------|---------|
          1|INITIAL|      1|......|.....................................................|de.cc.carorderprocess.models.Car    |           1|        1|
          5|UPDATE |      3|......|[¶   "modifyDate",¶  "nameCar"¶]      |de.cc.carorderprocess.models.Car    |           1|        3|
          6|UPDATE |      4|......|[¶   "modifyDate",¶  "modelCar"¶]    |de.cc.carorderprocess.models.Car    |           1|        4|

但是当我在我的控制器中这样做时:

Javers javers = JaversBuilder.javers().build();

QueryBuilder jqlQuery = QueryBuilder.byClass(Car.class);
List<CdoSnapshot> snapshots = javers.findSnapshots(jqlQuery.build());
logger.info(javers.getJsonConverter().toJson(snapshots));

Car car2 = carRepo.findById(3014l).get();
jqlQuery = QueryBuilder.byInstance(car2);
Changes changes = javers.findChanges(jqlQuery.build());
logger.info(javers.getJsonConverter().toJson(changes));

对于这两件事,我得到的是空数组

【问题讨论】:

【参考方案1】:

试试

queryBuilder jqlQuery = QueryBuilder.byClass(Car.class);
List<CdoSnapshot> snapshots = javers.findSnapshots(jqlQuery.build());
logger.info(javers.getJsonConverter().toJson(snapshots));

car car2 = carRepo.findById(3014l).get();
jqlQuery = QueryBuilder.byInstance(car2);
Changes changes = javers.findChanges(jqlQuery.build());
logger.info(javers.getJsonConverter().toJson(changes));

【讨论】:

以上是关于Javers 查询返回空结果的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 数据库查询返回空结果

SPARQL 查询返回空结果集

查询返回空结果但数据存在

为啥 eloquent orm 上的查询语句结果返回空值

为啥从子组件返回时我会从查询结果中获得空指针?

我雄辩的查询构建器实例返回空,而 sql 子句返回结果。会欣赏第二只眼睛