У меня проблема с настройкой представления ListChanges в javers:
Учитывая две структуры:
@Entity
public class User {
private Long id;
....
@OneToMany
private List<Authorisation> authorisations;
}
и
@Entity
public class Authorisation {
@Id
private Long id;
...
private String name;
private String scope;
private String asset;
@Override
public String toString() {
return name + " " + scope + ": " + asset;
}
}
я хочу отобразить ListChanges Authorisation
s в более удобочитаемой форме при запросе пользователя, у которого изменены полномочия. Когда я запрашиваю сейчас:
QueryBuilder jqlQuery = QueryBuilder.byInstance(repo.findByUserId(userId));
List<Change> changes = javers.findChanges(jqlQuery.withChildValueObjects().build());
....
javers.getJsonConverter().toJson(changes.get(0))
// or
changes.get(0).toString()
я получаю результаты, подобные этим для ListChanges:
{
"changeType": "ListChange",
...
"property": "authorisations",
"propertyChangeType": "PROPERTY_VALUE_CHANGED",
"elementChanges": [
{
"elementChangeType": "ValueAdded",
"index": 0,
"value": {
"entity": "....Authorisation",
"cdoId": 1
}
}
]
}
или
ListChange{ 'authorisations' collection changes :
0. '...Authorisation/1' added }
я теперь хочу отрендерить Authorisation
в более удобочитаемой форме, например, с использованием метода toString()
из Authorisation
, чтобы вывод был похож на
ListChange{ 'authorisations' collection changes :
0. '...Authorisation/abc def ghi' added }
Надеюсь, у кого-нибудь есть идея, поэтому заранее спасибо.