Как получить выражение по умолчанию из CriteriaBuilder внутри спецификацииJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как получить выражение по умолчанию из CriteriaBuilder внутри спецификации

Сообщение Anonymous »

Я создаю поисковый запрос для области, будь то просто больше начальной границы, меньше конечной границы или между ними. Я провожу рефакторинг метода и заключаю операторы if в одно тело предиката спецификации. До этого в каждом операторе if возвращалась спецификация.
private Specification whereArea(Specification spec, ListingSearchDTO dto) {
return (root, _, builder) -> {
Path area = root.get("apartment").get("area");

if (dto.getM2From() != null && dto.getM2To() != null)
return builder.between(area, dto.getM2From(), dto.getM2To());
if (dto.getM2From() != null)
return builder.ge(area, dto.getM2From());
if (dto.getM2To() != null)
return builder.le(area, dto.getM2To());
return builder.; // return something here
};
}

Что мне следует вернуть в качестве результата по умолчанию? Кажется, я ничего не нашел об этом в документации.
Раньше код выглядел так:
private Specification whereArea(Specification spec, ListingSearchDTO dto) {
if (dto.getM2From() != null && dto.getM2To() != null)
return (root, _, builder) -> builder.between(root.get("apartment").get("area"), dto.getM2From(), dto.getM2To());
if (dto.getM2From() != null)
return (root, _, builder) -> builder.ge(root.get("apartment").get("area"), dto.getM2From());
if (dto.getM2To() != null)
return (root, _, builder) -> builder.le(root.get("apartment").get("area"), dto.getM2To());
return spec;
}
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»