Получение родительских изменений с дочерними изменениями в одном запросе - PullRequest
0 голосов
/ 04 августа 2020

Я использую javers-spring-boot-starter- sql, версия 5.11.1.

Получение изменений для родительского объекта:

QueryBuilder jqlQuery = QueryBuilder.byInstanceId(23702, CoalAgreement.class).withNewObjectChanges().withChildValueObjects();
Changes changes = javers.findChanges(jqlQuery.build());

Возвращает изменения, содержащие только информацию о добавлении PriceList в коллекцию:

Commit 1.00 done by admin at 04 sie 2020, 15:19:28 :
* new object: CoalAgreement/23702
* changes on CoalAgreement/23702 :
  - 'priceLists' collection changes :
    0. '...PriceList/43853' added

Проблема в том, что я также хотел бы знать изменения в дочерней коллекции PriceList. Единственный способ, который я нашел, - это вручную получить изменения PriceList:

Changes changes = javers.findChanges(QueryBuilder.byInstanceId(43853,PriceList.class).build());

Есть ли способ получить родительские вместе с изменениями дочерних коллекций?

1 Ответ

0 голосов
/ 05 августа 2020

В настоящее время единственный способ активной загрузки целых графов объектов - использование теневых запросов.

В теневом запросе вы можете указать область активной загрузки. Есть четыре прицела. Чем шире область, тем больше теней объектов загружается в результирующий граф (и тем больше запросов к базе данных выполняется).

см. https://javers.org/documentation/jql-examples/#query -for-shadows

...