/** * Converts the given {@link OrderSpecifier} into an {@link Order}. * * @param orderSpecifier must not be {@literal null}. * @return */ private static Order toOrder(OrderSpecifier<?> orderSpecifier) { Assert.notNull(orderSpecifier, "Order specifier must not be null!"); Expression<?> target = orderSpecifier.getTarget(); Object targetElement = target instanceof Path ? preparePropertyPath((Path<?>) target) : target; Assert.notNull(targetElement, "Target element must not be null!"); return Order.by(targetElement.toString()).with(orderSpecifier.isAscending() ? Direction.ASC : Direction.DESC); }
@Override public Sort getMappedSort(Class<?> typeToRead, Sort sort) { RelationalPersistentEntity<?> entity = getPersistentEntity(typeToRead); if (entity == null) { return sort; } List<Order> mappedOrder = new ArrayList<>(); for (Order order : sort) { RelationalPersistentProperty persistentProperty = entity.getPersistentProperty(order.getProperty()); if (persistentProperty == null) { mappedOrder.add(order); } else { mappedOrder .add(Order.by(persistentProperty.getColumnName()).with(order.getNullHandling()).with(order.getDirection())); } } return Sort.by(mappedOrder); }
@Override public Sort getMappedSort(Class<?> typeToRead, Sort sort) { RelationalPersistentEntity<?> entity = getPersistentEntity(typeToRead); if (entity == null) { return sort; } List<Order> mappedOrder = new ArrayList<>(); for (Order order : sort) { RelationalPersistentProperty persistentProperty = entity.getPersistentProperty(order.getProperty()); if (persistentProperty == null) { mappedOrder.add(order); } else { mappedOrder .add(Order.by(persistentProperty.getColumnName()).with(order.getNullHandling()).with(order.getDirection())); } } return Sort.by(mappedOrder); }
/** * Returns a {@link Order} with {@link NullHandling#NULLS_FIRST} as null handling hint. * * @return * @since 1.8 */ public Order nullsFirst() { return with(NullHandling.NULLS_FIRST); }
/** * Returns a {@link Order} with {@link NullHandling#NATIVE} as null handling hint. * * @return * @since 1.7 */ public Order nullsNative() { return with(NullHandling.NATIVE); }
/** * Returns a {@link Order} with {@link NullHandling#NULLS_LAST} as null handling hint. * * @return * @since 1.7 */ public Order nullsLast() { return with(NullHandling.NULLS_LAST); }