Я пытаюсь экспортировать данные diff в мой интерфейс, используя json-конвертер javers, но я не могу получить то же самое, что показано в возврате Diff.prettyPrint (), который содержит «поле» из «x» в 'y' "... вывод json включает некоторые бесполезные данные, и даже порядок отображаемых данных отличается от одного к другому.
Мой фактический код:
Diff diff = javers.compare(projOriginal,projNew);
String diffJson = javers.getJsonConverter().toJson(diff);
Вывод той же переменной diff:
PrettyPrint:
* object removed: myproj.domain.entity.projeto.Requisito/5
* new object: myproj.domain.entity.projeto.Requisito/7
* changes on myproj.domain.entity.projeto.Requisito/7 :
- 'descricao' changed from '' to 'requisito 1'
- 'id' changed from '' to '7'
* changes on myproj.domain.entity.projeto.Risco/6 :
- 'fatorPriorizacao' changed from '0.10' to '0.100000000000000006'
* new object: myproj.domain.entity.projeto.Requisito/8
* changes on myproj.domain.entity.projeto.Requisito/8 :
- 'descricao' changed from '' to 'lionel messi'
- 'id' changed from '' to '8'
* changes on myproj.domain.entity.usuario.Usuario/1 :
- 'ultimoAcesso' changed from '29 ago 2018, 14:50:28' to '05 set 2018, 14:35:29'
* changes on myproj.domain.entity.projeto.dto.ProjetoDTO/2 :
- 'avisoComplexidade' changed from 'true' to 'false'
- 'requisitosList' collection changes :
0. '...Requisito/5' changed to '...Requisito/8'
1. '...Requisito/7' added
JsonConverter:
{
"changes": [
{
"changeType": "NewObject",
"globalId": {
"entity": "myproj.domain.entity.projeto.Requisito",
"cdoId": 8
}
},
{
"changeType": "NewObject",
"globalId": {
"entity": "myproj.domain.entity.projeto.Requisito",
"cdoId": 7
}
},
{
"changeType": "ObjectRemoved",
"globalId": {
"entity": "myproj.domain.entity.projeto.Requisito",
"cdoId": 5
}
},
{
"changeType": "ValueChange",
"globalId": {
"entity": "myproj.domain.entity.projeto.Requisito",
"cdoId": 7
},
"property": "descricao",
"left": null,
"right": "requisito 1"
},
{
"changeType": "ValueChange",
"globalId": {
"entity": "myproj.domain.entity.projeto.Requisito",
"cdoId": 7
},
"property": "id",
"left": null,
"right": 7
},
{
"changeType": "ValueChange",
"globalId": {
"entity": "myproj.domain.entity.projeto.Requisito",
"cdoId": 8
},
"property": "descricao",
"left": null,
"right": "lionel messi"
},
{
"changeType": "ValueChange",
"globalId": {
"entity": "myproj.domain.entity.projeto.Requisito",
"cdoId": 8
},
"property": "id",
"left": null,
"right": 8
},
{
"changeType": "ValueChange",
"globalId": {
"entity": "myproj.domain.entity.projeto.dto.ProjetoDTO",
"cdoId": 2
},
"property": "avisoComplexidade",
"left": true,
"right": false
},
{
"changeType": "ListChange",
"globalId": {
"entity": "myproj.domain.entity.projeto.dto.ProjetoDTO",
"cdoId": 2
},
"property": "requisitosList",
"elementChanges": [
{
"elementChangeType": "ElementValueChange",
"index": 0,
"leftValue": {
"entity": "myproj.domain.entity.projeto.Requisito",
"cdoId": 5
},
"rightValue": {
"entity": "myproj.domain.entity.projeto.Requisito",
"cdoId": 8
}
},
{
"elementChangeType": "ValueAdded",
"index": 1,
"value": {
"entity": "myproj.domain.entity.projeto.Requisito",
"cdoId": 7
}
}
]
},
{
"changeType": "ValueChange",
"globalId": {
"entity": "myproj.domain.entity.projeto.Risco",
"cdoId": 6
},
"property": "fatorPriorizacao",
"left": 0.10,
"right": 0.100000000000000006
},
{
"changeType": "ValueChange",
"globalId": {
"entity": "myproj.domain.entity.usuario.Usuario",
"cdoId": 1
},
"property": "ultimoAcesso",
"left": "2018-08-29T14:50:28.837",
"right": "2018-09-05T14:35:29.928"
}
]
}
Еще одна ОГРОМНАЯ проблема заключается в том, что я не вижу пути, к которому были прикреплены объекты ... Допустим, у меня есть пользователь, прикрепленный к моему графику в "projetoDTO.masterUser", а другой - в "projetoDTO.requisito". userThatManagesIt ": если произойдет изменение, я никогда не узнаю, где пользователь был / был только что пользователь был изменен.
Какие-нибудь проблемы?
Ty
Редактировать
Другое дело, что я знаю, что объект был удален ... и это все! Используя Long как @Id, я не могу знать, что было удалено, так как «1» не имеет отношения к пользователю. Есть идеи? Может быть, withDeletedObjects (true), как для новых объектов, доступен?