2012-05-10 18 views
63

Estoy intentando Spring data JPA en mi proyecto. Deseo saber si existe una API lista para usar para consultar datos, tanto en Sort como en Pageable. Por supuesto, sé que puedo escribir ese método yo solo, solo quiero saber si hay uno listo para usar. Mi DAO se extiende JpaRepository, y me encontré existen los siguientes métodos: Puedo invocar¿Cómo se consultan los datos desde la caja utilizando JPA de datos de primavera tanto por clasificación como por página?

findAll(); 
findAll(Pageable pageable); 
findAll(Sort sort); 

Pero no hay tal método findAll(Sort sort, Pageable pageable), así que estoy curioso.

Respuesta

134

Hay dos maneras de lograr esto:

final PageRequest page1 = new PageRequest(
    0, 20, Direction.ASC, "lastName", "salary" 
); 

final PageRequest page2 = new PageRequest(
    0, 20, new Sort(
    new Order(Direction.ASC, "lastName"), 
    new Order(Direction.DESC, "salary") 
) 
); 

dao.findAll(page1); 

Como se puede ver la segunda forma es más flexible, ya que permite definir una dirección diferente para cada propiedad (lastName ASC, salary DESC).

+3

Pasar múltiples columnas ordenando datos desde Javascript a través de un control REST se puede hacer con los siguientes datos de Javascript: ['name, asc', 'location, desc'] – Stephane

+0

¡Gracias por su respuesta y me ayudó! ¿Podrías cambiar el orden para ordenar? Es Ordenar en datos de primavera. – curious1

+3

Esta fue mi solución; sin embargo, en la primavera es: Pageable pageable = new PageRequest (0, 20, nuevo Sort (nuevo Sort.Order (Direction.ASC, "name"), nuevo Sort.Order (Direction.DESC, "salarial")))); – Simon

12

Pageable tiene una opción para especificar el género también. Desde el java doc

PageRequest(int page, int size, Sort.Direction direction, String... properties) 

Crea un nuevo PageRequest con parámetros de clasificación aplicados.

+2

De esta manera está configurando una dirección de clasificación para todas las propiedades. Si desea diferenciar la dirección de ordenamiento por propiedad, debe usar el objeto Ordenar como señaló Tomasz. – Mariusz

Cuestiones relacionadas