Как использовать JpaSort в Spring Data, чтобы возвращать нули последними?
В настоящее время я использую такую конструкцию для сортировки:
new JpaSort( JpaSort.path( Datasheet_.componentSubtype )
.dot( ComponentSubtype_.componentType )
.dot( ComponentType_.name ) )
.and( new JpaSort( JpaSort.path( Datasheet_.componentSubtype )
.dot( ComponentSubtype_.name ) ) )
Я видел в этом ответе, что API-интерфейс Hibernate Critaria позволяет это, но хотел бы использовать JPA.
2 ответа
Короткий ответ: вы не можете, поскольку JPA (читай: ни Criteria API, ни JPQL) не определяет средства для определения порядка сортировки для null
s.
Возможно, вы захотите использовать Querydsl в качестве альтернативы нашему соответствующая абстракция предоставляет необходимый API для определения этого. Обратите внимание, однако, что Querydsl использует специальные расширения поставщика сохраняемости для сгенерированного JPQL
Если вы используете Spring Data Pageable в контроллере Spring MVC таким образом
@RequestMapping(method = RequestMethod.GET)
public Page<Address> list(Pageable pageable) {...}
И вы используете MySql, эти параметры URL могут помочь
?page=0&size=100&sort=isnull(streetLine2)&sort=streetLine2,desc
Похожие вопросы
Связанные вопросы
Новые вопросы
spring-data
Spring Data - это зонтичный проект с открытым исходным кодом, который содержит множество подпроектов, специфичных для данной базы данных. Проекты разрабатываются в сотрудничестве со многими компаниями и сообществом, которые стоят за этими захватывающими технологиями.