Программно исключить поля в содержимом страницы
Использование Spring MVC с JsonView
из библиотеки json-view, чтобы программно исключить некоторые поля из Page
содержание, как так
Page<CollectionTransaction> page = (Page<CollectionTransaction>)getEntityService().findAll(predicate, pageable);
page = jsonResult.use(JsonView.with(page)
.onClass(PaymentPeriod.class, match().exclude("saleTransactions", "memberPayment"))
.onClass(PaymentMode.class, match().exclude("accountingTransactionCollection")))
.returnValue();
JSON результат возвращается следующим
{
"total": 26867,
"pageable": {
"sort": null,
"page": 0,
"size": 20
},
"content": [
{
...
}
]
}
Что возвращается, если JsonView
не используется и просто возвращает страницу следующим образом (что является желаемым результатом)
{
"content": [
{
...
}
],
"totalPages": 48,
"last": false,
"totalElements": 955,
"size": 20,
"number": 0,
"sort": null,
"numberOfElements": 20,
"first": true
}
Это происходит только при использовании Page
,
Почему json-view
изменить формат возвращаемого json, или как достичь желаемого результата.