Size: a a a

Spring Framework and more

2020 May 10

G

GamerX in Spring Framework and more
Подскажите, каким образом лучше реализовать поиск в БД по диапазону дат? проект на Java 1.8, со Spring data jpa 2.2.3, соответственно есть куча либ. Но каким образом лучше?

Например если пользователь вводит дату с 22.03.2020 по 23.03.2020э
источник

AE

Alexandr Emelyanov in Spring Framework and more
GamerX
Подскажите, каким образом лучше реализовать поиск в БД по диапазону дат? проект на Java 1.8, со Spring data jpa 2.2.3, соответственно есть куча либ. Но каким образом лучше?

Например если пользователь вводит дату с 22.03.2020 по 23.03.2020э
А какие есть варианты то? Where + lt/gt
источник

G

GamerX in Spring Framework and more
Варианты как минимум
@Query(value = "SELECT и далее по тексту и

и ещё
Page<Photos> findAllByDateBetween


Но они оба исключают варианты когда помимо поиска по диапазону дат, юзер хочет получить ещё какие-нибудь параметры
источник

РН

Роман Нагаев... in Spring Framework and more
GamerX
Варианты как минимум
@Query(value = "SELECT и далее по тексту и

и ещё
Page<Photos> findAllByDateBetween


Но они оба исключают варианты когда помимо поиска по диапазону дат, юзер хочет получить ещё какие-нибудь параметры
так тебе нужно полноценные фильтры или просто по датам фильтрануть?
источник

G

GamerX in Spring Framework and more
Полноценный
источник

G

GamerX in Spring Framework and more
Кроме дат, я использую для фильтрации ExampleMatcher
источник

OD

O. D. in Spring Framework and more
Обрати внимание на SpecificationAPI
источник

OD

O. D. in Spring Framework and more
Сейчас найду гайд по которону делал фильтры
источник

G

GamerX in Spring Framework and more
Типа, если с контроллера приходит null я проставляю .withIgnorePaths. Но как диапазон дат задать я что-то не догоняю
источник

OD

O. D. in Spring Framework and more
O. D.
Обрати внимание на SpecificationAPI
источник

РН

Роман Нагаев... in Spring Framework and more
GamerX
Полноценный
https://www.baeldung.com/spring-rest-api-query-search-language-tutorial

вот тут куча вариантов, только типизацию не разрушай а то потом предикат не соберёшь
источник

G

GamerX in Spring Framework and more
Этим и руководствовался изначально, про диапазон дат там нет
источник

РН

Роман Нагаев... in Spring Framework and more
GamerX
Этим и руководствовался изначально, про диапазон дат там нет
это делается через greater и less например в критерии

between там помоему нету
источник

AE

Alexandr Emelyanov in Spring Framework and more
GamerX
Варианты как минимум
@Query(value = "SELECT и далее по тексту и

и ещё
Page<Photos> findAllByDateBetween


Но они оба исключают варианты когда помимо поиска по диапазону дат, юзер хочет получить ещё какие-нибудь параметры
так это одно и то же. у тебя может быть что одной из дат нет?
источник

AE

Alexandr Emelyanov in Spring Framework and more
O. D.
Обрати внимание на SpecificationAPI
querydsl лучше
источник

G

GamerX in Spring Framework and more
Alexandr Emelyanov
так это одно и то же. у тебя может быть что одной из дат нет?
Да, может одной даты не быть.
источник

AE

Alexandr Emelyanov in Spring Framework and more
GamerX
Да, может одной даты не быть.
тогда оба твоих варианта не подойдут, тебе нужен динамический фильтр
источник

AE

Alexandr Emelyanov in Spring Framework and more
на спецификациях или querydsl
источник

AE

Alexandr Emelyanov in Spring Framework and more
второй оживляют, скоро снова в строю будет
источник

I

Ivan in Spring Framework and more
или просто обернуть вызов и подставлять даты по умолчанию
источник