Объект Javers, на который ссылается другой объект: отображение изменений по идентификатору, а не по свойствамJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Объект Javers, на который ссылается другой объект: отображение изменений по идентификатору, а не по свойствам

Сообщение Anonymous »

Javers 7.10.0
У меня есть bean-компонент Javers, определенный, как показано ниже. Классы моей модели предметной области расширяют абстрактный класс Entity.

Код: Выделить всё

return JaversBuilder.javers()
.registerEntity(
EntityDefinitionBuilder.entityDefinition(Entity.class)
.withIdPropertyName("id")
.build())
.registerJaversRepository(mongoRepository)
.build();
Предположим, у меня есть класс Foo, который ссылается на Product. И Foo, и Product расширяют Entity.

Код: Выделить всё

public class Foo extends Entity {

private String someProperty;
private Product product;

// ...
}

public class Product extends Entity {
private String code;
// ...
}
Вызов javers.commit выполняется для сущности Foo с заполненным объектом Product, содержащим определенный код.
Каждый раз, когда я обновляю сущность Foo другим product.code, я хотел бы видеть подробные изменения в свойствах Product, указывающие, что product.code изменился с XXX на ГГГ.
Однако, когда я запрашиваю изменения в сущности Foo с помощью javers.findChanges(queryBuilder.withChildValueObjects().build()), я вижу только, что product.id изменился с 1 на 3.

Код: Выделить всё

...

"changeType" : "PROPERTY_VALUE_CHANGED",
"propertyName" : "product",
"left" : {
"typeName" : " ...   model.common.Product",
"cdoId" : 1
},
"right" : {
"typeName" : "... .model.common.Product",
"cdoId" : 3
}

...
Это будет работать так, как и ожидалось, если я объявлю Foo как Entity, а Product как ValueObject. Однако мне также необходимо проверить сам Продукт и иметь возможность запрашивать его независимо.
Я чувствую, что что-то упускаю. Есть ли у вас какие-либо предложения?

Подробнее здесь: https://stackoverflow.com/questions/799 ... not-proper
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»