Я написал запрос об использовании, как показано ниже;Реализация пейджинга с помощью спящего режима
AuditReader reader = AuditReaderFactory.get(entityManager);
List<Object[]> changes = reader.createQuery()
.forRevisionsOfEntity(cls, true, true)
// Various conditions
.getResultList();
То, что я хотел бы сделать, это получить результаты в страницах, может быть сделано в PagingAndSortingRepository<T,ID>
, я это почти рабочий, как показано ниже
int start = page.getOffset();
int end = (start + page.getPageSize()) > history.size() ? history.size() : (start + page.getPageSize());
Page page = new PageImpl<HistoryEntry>(history.subList(start, end), page, history.size());
Моя проблема заключается в том, что, когда сделано таким образом, я не может сортировать данные, как ожидалось, то есть size=2&sort=action,desc
не сортирует независимо от того, какое значение я использую (asc/desc).
history
- это список объектов со следующими полями;
private String timestamp;
private String userName;
private String objectName;
private String objectType;
private String action;
private String field;
private String oldValue;
private String newValue;
Для осуществления поискового вызова, фильтрации и сортировки через Envers бы это нужно сделать с помощью оригинального Envers запроса или может пейджинговой вид после этого?
Я столкнулся с этим вопросом, пытаясь добиться того же. Оглядываясь назад, вы все равно решите свою проблему получения постраничных результатов HistoryEntries таким образом? (или вы бы создали какой-то хранилище?) – Spork