Saltar al contenido

¿Cómo usar interfaces de proyección con paginación en Spring Data JPA?

Investigamos en diferentes espacios para así tener para ti la solución para tu inquietud, si tienes alguna duda puedes dejarnos tu pregunta y te responderemos porque estamos para ayudarte.

Solución:

Nota: Esta función debería funcionar de la manera descrita en el póster original, pero debido a este error no funcionó. El error se ha solucionado para la versión Hopper SR2, si está atascado en una versión anterior, la solución a continuación funcionará.

Es posible usar Pageable con las nuevas funciones de proyección de consultas introducidas en Spring Data JPA 1.10 (Hopper). Tendrás que usar el @Query anotación y escriba manualmente una consulta para los campos que necesita, también deben tener un alias usando AS para permitir que Spring Data descubra cómo proyectar los resultados. Hay un buen ejemplo en la parte spring-boot-samples del repositorio spring boot.

En tu ejemplo sería bastante simple:

@Query("SELECT n.id AS id, n.name AS networkName, n.active AS isActive FROM Network n")
Page findAllProjectedBy(Pageable pageable);

He asumido que su entidad se parece a esto:

@Entity
public class Network

    @Id
    @GeneratedValue
    private Long id;

    @Column
    private String name;

    @Column
    private boolean active;

    ...

Spring Data generará una consulta de conteo automáticamente para la información de paginación. También es posible hacer uso de uniones en la consulta para obtener asociaciones y luego resumirlas en la proyección.

Al final de la post puedes encontrar las notas de otros desarrolladores, tú además eres capaz dejar el tuyo si lo deseas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *