2016-10-20 4 views
0

У меня есть запрос на поиск для поиска истории данного объекта, что я пытаюсь сделать, это использовать предикаты, если они указаны в запросе.Обнаруживает необязательные предикаты

Например, я хотел бы иметь возможность фильтровать по дате/типу пользователя/ревизии и т. Д. (Или комбинацию полей) на основе отправленного запроса.

Я знаю, как добавить предикаты, мне просто интересно, есть ли значение по умолчанию, которое я могу использовать, если параметр (например, fromDate) не указан, и поэтому следующая строка игнорируется.

.add(AuditEntity.revisionProperty("date").ge(fromDate)) 

ответ

2

Из дальнейшего чтения по этому вопросу я нашел решение похоже на этот ответ; https://stackoverflow.com/a/2439958/7030856

AuditReader reader = AuditReaderFactory.get(entityManager); 
AuditQuery query = reader.createQuery().forRevisionsOfEntity(cls, true, true); 
if (fromDate!= null) { 
    query.add(AuditEntity.revisionProperty("date").ge(fromDate)) 
} 
// Etc 
List<Object[]> changes = query.getResultList(); 
Смежные вопросы