Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

203
Views
Cómo filtrar una PageRequest en primavera

Cuando hago una solicitud sobre todas las noticias que tengo en mi base de datos, uso una PageRequest como esta:

 public Page<StatusUpdate> getPageSiteUser(int pageNumber) { PageRequest request = new PageRequest(pageNumber-1, pageSize, Sort.Direction.DESC, "added"); return statusUpdateDao.findAll(request); }

Y muestra todas las noticias de cada página ordenadas en perfecto orden.

Pero ahora, quiero seleccionar las noticias creadas por un usuario, en el mismo formato Pageable (no todas las noticias) y no encuentro cómo hacerlo, así que debo estar cometiendo un error estúpido en alguna parte... debería ser algo como...

 public Page<StatusUpdate> findMyStatusUpdates(Long user_id, int pageNumber) { PageRequest request = new PageRequest(pageNumber-1, pageSize, Sort.Direction.DESC, "added"); return statusUpdateDao.findAll(request); }

Por favor, responda con un enlace a la teoría si puede. La documentación habla sobre la clasificación, no sobre la selección real ( ingrese la descripción del enlace aquí )

about 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Puede combinar una consulta, para filtrar por el usuario, con una solicitud paginable. Spring puede crear la consulta en función del nombre del método.

Echa un vistazo a la documentación:

Spring data JPA Creación de consultas

Uso de Pageable, Slice y Sort en métodos de consulta

En tu caso, sin ver tu código, supongo que solo necesitas incluir en tu repositorio un método como:

 public interface StatusUpdateRepository extends Repository<StatusUpdate, Long> { //finBy<column_name> Page<User> findByUser(Long userId, Pageable pageable); }
about 4 years ago · Santiago Trujillo Report

0

También puede enviar una PageRequest a un filtro existente en su repositorio. Puede crear un método de repositorio, filtrarlos según las necesidades de su negocio.

Supongamos que le gustaría encontrar publicaciones proporcionando un usuario , atributos de estado y luego ordenarlas por su fecha de creación en orden descendente .

Es posible que no desee que todas las publicaciones se incluyan en el objeto de página mientras las envía a un buscapersonas, antes de agregarlas al modelo de modelo.

Esto es simplemente equivalente a una consulta sql como tal:

 select * from Post where user=user and status=status order by createdAt desc

--

 public interface BlogRepository extends PagingAndSortingRepository<Post, Long> { Page<Post> findByUserAndStatusOrderByCreatedAtDesc(PageRequest pageRequest, User user, boolean status); }

y en su controlador, use su implementación (postService) junto con un nuevo objeto PageRequest como:

 Page<Post> filteredPosts = postService.findByUserAndStatusOrderByCreatedAtDesc(PageRequest.of(evalPage, evalPageSize), user, status);

esto funciona bien para 2.xx; mientras que es mejor usar a continuación para 1.xx

 Page<Post> filteredPosts = postService.findByUserAndStatusOrderByCreatedAtDesc(new PageRequest(evalPage, evalPageSize), user, status);

Este repositorio me guió hasta cierto punto sobre este asunto con la lógica de paginación, etc.

Solo tuve que cambiar de ModelView a Model en el argumento del controlador y en su lugar devolvió String (nombre de la plantilla).

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!