Spring Framework en español - Paginación Spring Boot, Thymeleaf y Bootstrap | 4SoftwareDevelopers

  Рет қаралды 10,466

4SoftwareDevelopers

4SoftwareDevelopers

Күн бұрын

Пікірлер: 72
@4SoftwareDevelopers
@4SoftwareDevelopers Жыл бұрын
Tal y como lo prometí la semana pasada aquí hay una versión mejorada de este video: kzbin.info/www/bejne/mYKzZYaGosiWbqM
@4SoftwareDevelopers
@4SoftwareDevelopers Жыл бұрын
😎 Leyendo los comentarios veo que para los casos donde hay muchos registros algunos tienen problemas, voy a empezar a trabajar en un video sobre paginación enfocado en rest y también voy a tratar de incluir muchos registros, el video será en dos partes una parte similar a esta con una paginación simple en HTML y en una segunda parte convertimos eso a un API REST. Les agradezco mucho el apoyo que ha tenido el video, echen un ojo en el primer link de la descripción
@michel_hdez
@michel_hdez Жыл бұрын
Agradecido con tu video y tú solución. Tenía un código que se desbordaba a la hora de agregar más elementos en mi CRUD. Tu código me funciona. Muchas gracias.
@4SoftwareDevelopers
@4SoftwareDevelopers Жыл бұрын
Excelente!!! Gracias por el apoyo.
@claveralvaro6245
@claveralvaro6245 2 жыл бұрын
Acabo de buscar cómo se implementan los Pageable en un resultado para un Criteria Querys. Hay algunos enfoques en Stack Overflow , el mismo Baeldung también. No estoy seguro cual sea mejor. Sería genial una opinión de gente más experimentada. Increíble video por cierto. * c suscribe *
@4SoftwareDevelopers
@4SoftwareDevelopers 2 жыл бұрын
Hola Claver, realmente ambos son excelentes fuentes. Nosotros mismos sacamos de ahí muchísima información no solo para el canal si no para los proyectos en general.
@sebastiansangermano1698
@sebastiansangermano1698 4 жыл бұрын
Operador condicional ternario se llama a lo que le dices condicional corto, muy buen video y muchas gracias por compartir tus conocimientos
@4SoftwareDevelopers
@4SoftwareDevelopers 4 жыл бұрын
Hola Sebastián, nos alegra saber que te gustó el vídeo saludos 😉
@kimlulu261
@kimlulu261 3 жыл бұрын
excelente, explicas muy bien, me ayudaste de mucho muchas gracias.
@4SoftwareDevelopers
@4SoftwareDevelopers 3 жыл бұрын
Hola, me alegra mucho leer eso, saludos ;)
@iliastellaarango3716
@iliastellaarango3716 5 жыл бұрын
Excelente video, muchas gracias por compartir tus conocimientos, sigue así
@4SoftwareDevelopers
@4SoftwareDevelopers 5 жыл бұрын
Hola Ilia, nos alegra saber que te gustó el vídeo, esperamos seguir generando contenido que sea de tu agrado.
@testtest-c4z
@testtest-c4z Жыл бұрын
Hola que tal? Muy buen video, consulta. En el caso de hacer un get teniendo una api rest y la respuesta devuelva ejemplo 50.000 registros, conviene hacer una sola llamada y luego manejar la data desde el front end , hacer paginacion en el Backend y al hacer la llamada que nos diga cuantas páginas y registros tenemosbe ir haciendo una llamada por página o que otro método? Muchas gracias
@4SoftwareDevelopers
@4SoftwareDevelopers Жыл бұрын
Conviene hacer una paginación, ahí en el canal tenemos un video reciente con el ejemplo, échale un ojo y te servirá.
@angelvanitas8638
@angelvanitas8638 5 жыл бұрын
cabal esto estaba buscando gracias.
@4SoftwareDevelopers
@4SoftwareDevelopers 5 жыл бұрын
Hola Angel Nos alegra saber que nuestro vídeo te ayudó, saludos.
@HectorSalinas-vf9ji
@HectorSalinas-vf9ji 5 жыл бұрын
Excelente, se agradece el video
@4SoftwareDevelopers
@4SoftwareDevelopers 5 жыл бұрын
Hola Héctor, lo hacemos con mucho gusto 😉, saludos
@marcelogabrielcabana6822
@marcelogabrielcabana6822 2 жыл бұрын
Genial, me ayudo bastante el vídeo. Tengo una duda como ordeno el pagePersona para que me quede ordenado como yo quiera?
@4SoftwareDevelopers
@4SoftwareDevelopers 2 жыл бұрын
Hola, en ese caso en el PageRequest.of() puedes usar al final el método ascending o descending, ejemplo PageRequest.of(page, 10).ascending(); Saludos.
@rafamartin1993
@rafamartin1993 Жыл бұрын
Hola muy buenas, tengo una consulta. Cuando tengo una bbdd con muchos registros por ejemplo: ("hits" : {"total" : 15471060 } ). El getTotalPages() me devuelve 1. No se si esto se debe a que el numero total de elementos es muy grande para ser de tipo int .
@4SoftwareDevelopers
@4SoftwareDevelopers Жыл бұрын
Voy a sacar un video con un ejemplo de esto más estructurado.
@JesusMatiasOficial
@JesusMatiasOficial 5 жыл бұрын
Gracias por este gran video =)
@4SoftwareDevelopers
@4SoftwareDevelopers 5 жыл бұрын
Hola Jesús, gracias a ti también por ser parte de la comunidad 😁
@juanzuluaga8188
@juanzuluaga8188 5 жыл бұрын
Que buen video, Sensei!
@4SoftwareDevelopers
@4SoftwareDevelopers 5 жыл бұрын
Juan! Nos alegra leer que te gustó el video. Te invitamos a que nos sigas en redes y actives las notificaciones para que te enteres de todo nuestro nuevo contenido. Esperamos seguir generando contenido de tu agrado, saludos.
@edgaravila8492
@edgaravila8492 3 жыл бұрын
@@4SoftwareDevelopers aún falta no lo dejes asi, si la base de datos tiene muchos registros saldrá un arreglo de tipo int , para los link muy largo , te salieron 6 pues solo tienes 59 registros, ese arreglo del link debe ser mostrado de 10 en diez por cada página . Por favor has un. Video de cómo hacer eso.
@emmanuelgonzalez5621
@emmanuelgonzalez5621 2 жыл бұрын
Hola, que tal, soy nuevo en el canal. Disculpen una pregunta en que video puedo encontrar lo de la BD o el script? para seguir este buen tutorial.
@4SoftwareDevelopers
@4SoftwareDevelopers Жыл бұрын
En ese link se encuentra la tabla del video gist.github.com/4SoftwareDevelopers/c964b0f45903dab860609df24100e03c
@raphauy
@raphauy 5 жыл бұрын
Muchas gracias!!!
@4SoftwareDevelopers
@4SoftwareDevelopers 5 жыл бұрын
Lo hacemos con gusto 😎
@christiansanchez2217
@christiansanchez2217 2 жыл бұрын
que buen tutorial
@4SoftwareDevelopers
@4SoftwareDevelopers 2 жыл бұрын
Gracias por el apoyo 😉
@samueltoriz1857
@samueltoriz1857 3 жыл бұрын
Hola 4SofteareDevelopers tengo una pregunta, cuando estas creando el controlador, dentro del if(totalPage>0){ List pages = IntStrean.rangeClosed(1, totalPage).boxed().collect(Collectors.toList()); } Utilizas la palabra IntStrean o IntStream para convertirlo a un int? Se podria ocupar un Integer.ParseInt?
@4SoftwareDevelopers
@4SoftwareDevelopers 3 жыл бұрын
Hola, en el ejemplo, utilizamos IntStream, ya que no es un simple int es es un stream, algo similar a una lista, los stream fueron introducidos en Java 8 y tienen como objetivo mejorar la manipulación de las listas en Java, puedes conocer un poco en nuestro ebook, igual tendemos pronto un vídeo del tema.
@samueltoriz1857
@samueltoriz1857 3 жыл бұрын
@@4SoftwareDevelopers Tienes algun video tutorial para paginacion despues de hacer algun tipo de filtracion? Estoy trabajando con IFilter?
@4SoftwareDevelopers
@4SoftwareDevelopers 3 жыл бұрын
Hola, por el momento no tenemos un vídeo así
@ronalmaihuire2670
@ronalmaihuire2670 4 жыл бұрын
#pregunta que diferencia ahi si hago la paginación con javascript y lo incorporo ami proyecto... seria buena practica sabien que hoy en dia puedes encontrar plantillas muy completas que vienen con su paginacion ya todo echo y su buscador por filtros .... solo seria cuestion de incorporarlo al proyecto.
@4SoftwareDevelopers
@4SoftwareDevelopers 4 жыл бұрын
Hola Ronal, a través de Javascript usarías peticiones http tipo Ajax puede que sea necesario hacer algunos cambios en la lógica pero si lo puedes implementar en el proyecto que desees hacerlo, saludos 😉
@marioarmandoseguraalbarrac1891
@marioarmandoseguraalbarrac1891 3 жыл бұрын
Pregunta, la arquitectura de las carpetas que me aparece cuando descargo el proyecto de l pagina de spring es diferente, le aparecen menos carpetas y no tiene los paquetes que se ven en el video, gracias¡
@4SoftwareDevelopers
@4SoftwareDevelopers 2 жыл бұрын
Hola, disculpa la demora, KZbin no avisa, saludos.
@FellTheSky
@FellTheSky 4 жыл бұрын
El método findAll(pageable) me tira error en el ide ("The method findAll(Sort) in the type JpaRepository is not applicable for the arguments (SpringDataWebProperties.Pageable)") Si trato de acceder desde el postman: ("Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler dispatch failed; nested exception is java.lang.Error: Unresolved compilation problem: The method findAll(Sort) in the type JpaRepository is not applicable for the arguments (SpringDataWebProperties.Pageable) ] with root cause"
@4SoftwareDevelopers
@4SoftwareDevelopers 4 жыл бұрын
Hola, qué versión de Spring Data estás usando ?
@FellTheSky
@FellTheSky 4 жыл бұрын
@@4SoftwareDevelopers Genio, gracias por responder pero lo pude resolver. Como un tonto después de revisar todo el proyecto me di cuenta que tenía una anotación de PageResponse de otra librería. Gracias por responder igual
@FellTheSky
@FellTheSky 4 жыл бұрын
Te hago otra consultita por ahí me podes guiar un poquito (es para un examen en mercado libre). COmo hago para mandar un parámetro "opcional" en el mapping?. Lo que me piden es que el usuario pueda conectarse a /Objeto?page=1&size=50&user_id=2 O a /Objeto?page=1&size=50. Lo estuve probando pero no le puedo agarrar la mano, igual muchas gracias por el tutorial!
@4SoftwareDevelopers
@4SoftwareDevelopers 4 жыл бұрын
Excelente que lo hayas logrado por tu cuenta 😁 bien ahí crack.
@4SoftwareDevelopers
@4SoftwareDevelopers 4 жыл бұрын
Puedes simplemente validar si el parámetro es diferente de vacío y diferente de null, si no es así puedes enviar algún valor por defecto.
@melchiah6603
@melchiah6603 Жыл бұрын
El detalle es que se desborda de la pantalla, cuando tienes por ejemplo, 2000 registros. Sabes cómo controlar esto?
@4SoftwareDevelopers
@4SoftwareDevelopers Жыл бұрын
Voy a sacar un video con un ejemplo de esto más estructurado.
@melchiah6603
@melchiah6603 Жыл бұрын
@@4SoftwareDevelopers por favor. Te lo agradecería mucho, ys qué he intentado y no me sale.
@4SoftwareDevelopers
@4SoftwareDevelopers Жыл бұрын
@@melchiah6603 Mira el comentario fijado, ya es un hecho.
@4SoftwareDevelopers
@4SoftwareDevelopers Жыл бұрын
Listo, ya estrenamos el video prometido: kzbin.info/www/bejne/mYKzZYaGosiWbqM
@TheImsebas
@TheImsebas 4 жыл бұрын
Usando native query como se tendria que implementar
@4SoftwareDevelopers
@4SoftwareDevelopers 4 жыл бұрын
En ese caso tendrías que implementar el repositorio basado de la siguiente manera @Query(value = "SELECT * FROM USERS WHERE LASTNAME = ?1 ORDER BY ?#{#pageable}", countQuery = "SELECT count(*) FROM USERS WHERE LASTNAME = ?1", nativeQuery = true) Page findByLastname(String lastname, Pageable pageable); El #{#pageable} te permite seguir manejando la lógica a través de las herramientas que te da Spring Data, esperamos te sirva, saludos 😁
@Testuy606
@Testuy606 5 жыл бұрын
Hola que tal. Hice como vs, salio la paginacion. Pero al momento de volver al inicio no se desaparecen los botones anterior y ssiguiente. Osea no se ocultan !
@4SoftwareDevelopers
@4SoftwareDevelopers 5 жыл бұрын
Hola, puede que sea un bug de nuestro desarrollo, vamos a revisarlo y se actualizará el código en GitHub en caso de que sea necesario, gracias por comentar, trata de resolverlo tu mismo, así podrás aprender mucho más 😁
@Testuy606
@Testuy606 5 жыл бұрын
@@4SoftwareDevelopers Ok gracias por resp tan pronto. Muy buenos videos !
@4SoftwareDevelopers
@4SoftwareDevelopers 5 жыл бұрын
Con Gusto Black, siempre tratamos de ayudar a la comunidad
@nowen2104
@nowen2104 2 жыл бұрын
se llama condicional ternario
@4SoftwareDevelopers
@4SoftwareDevelopers 2 жыл бұрын
Gracias, en ese momento lo había olvidado, saludos 😉
@nowen2104
@nowen2104 2 жыл бұрын
@@4SoftwareDevelopers a usted, muy amable. Con sus videos me sacó del barro para un trabajo que estoy con laravel y estoy consumiendo unas apis, muchas gracias por le agradezco por la explicación de los genéricos ayudan muchísimo y riende el desarrollo. De nuevo muchas gracas desde Colombia
@4SoftwareDevelopers
@4SoftwareDevelopers 2 жыл бұрын
Tu comentario nos alegra muchísimo, es excelente leerlo y esperamos poder seguir ayudándote y contando con tu apoyo, saludos 😉
@nowen2104
@nowen2104 2 жыл бұрын
@@4SoftwareDevelopers claro yo soy desarrollador de software y si puedo aportarles en algo me cuenta, usted sabe que este mundo es muy grande y por más que uno sepa, menos sabe.
@Testuy606
@Testuy606 5 жыл бұрын
Hola gente vengo a mostrar una solución que ocurre cuando tenemos una pagina principal como Welcome y agregamos en otro html este ejercicio de paginacion . El tema es q con una pag principal los botones anterior y siguiente no desaparecen al volver a la pag , esto se soluciona agregando th:if="${anterior != null}" antes del hreft que envía la petición a anterior y a siguiente. El cod final para estos botones queda algo así. Boton anterior = Ant Boton siguiente = Sig
@4SoftwareDevelopers
@4SoftwareDevelopers 5 жыл бұрын
Excelente trabajo, felicitaciones 👏
@mlizano6793
@mlizano6793 4 жыл бұрын
"reposítory"... viejo sería importante ya que estan haciendo videos enfocados a un publico profesional, que mejoren su nivel de inglés, porque es pésimo... por todo lo demás, muy bien!
@4SoftwareDevelopers
@4SoftwareDevelopers 4 жыл бұрын
Hola M, lo hemos mejorado 😁 y seguimos haciéndolo, no somos nada si no estamos enfocados en mejorar en todos los aspectos, saludos 😉
@mlizano6793
@mlizano6793 4 жыл бұрын
@@4SoftwareDevelopers perfecto
@Sarv9208
@Sarv9208 2 жыл бұрын
Mis query @Query(value = "select * from estudiante as e where e.nombre like %:nombre% #pageable ", nativeQuery = true) Page estudiantePorFiltro(String nombre, PageRequest pageable); @Query(value = "select * from estudiante as e inner join (select * from respuesta as r where r.fecha = :fecha) as rs on e.idusuario = rs.idusuario #pageable ", nativeQuery = true) Page estudiantePorFechaRespuesta(Date fecha, PageRequest pageable); @Query(value = "select c1.idusuario, c1.nombre from (select * from estudiante as e where e.nombre like %:nombre%) as c1 inner join (select * from respuesta as r where r.fecha = :fecha) as c2 on c1.idusuario = c2.idusuario #pageable ", nativeQuery = true) Page estudiantePorNombreYFecha(String nombre, Date fecha, PageRequest pageable); Error 2022-06-25 15:12:01.207 INFO 9372 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms 2022-06-25 15:12:01.521 DEBUG 9372 --- [nio-8080-exec-1] org.hibernate.SQL : select * from estudiante as e where e.nombre like ? #pageable order by e.idusuario asc 2022-06-25 15:12:01.524 TRACE 9372 --- [nio-8080-exec-1] o.h.type.descriptor.sql.BasicBinder : binding parameter [1] as [VARCHAR] - [%Serg%] 2022-06-25 15:12:01.654 WARN 9372 --- [nio-8080-exec-1] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 0, SQLState: 42703 2022-06-25 15:12:01.654 ERROR 9372 --- [nio-8080-exec-1] o.h.engine.jdbc.spi.SqlExceptionHelper : ERROR: column "pageable" does not exist Position: 56 2022-06-25 15:12:01.781 ERROR 9372 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.InvalidDataAccessResourceUsageException: could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet] with root cause org.postgresql.util.PSQLException: ERROR: column "pageable" does not exist Position: 56
@4SoftwareDevelopers
@4SoftwareDevelopers 2 жыл бұрын
Ese pegeable de ahí no aplica cuando le pones el NativeQuery en true
@Sarv9208
@Sarv9208 2 жыл бұрын
@@4SoftwareDevelopers Lo intentare
@4SoftwareDevelopers
@4SoftwareDevelopers 2 жыл бұрын
Excelente!!!
Quilt Challenge, No Skills, Just Luck#Funnyfamily #Partygames #Funny
00:32
Family Games Media
Рет қаралды 55 МЛН
Chain Game Strong ⛓️
00:21
Anwar Jibawi
Рет қаралды 41 МЛН
coco在求救? #小丑 #天使 #shorts
00:29
好人小丑
Рет қаралды 120 МЛН
Spring Boot For Beginners - Pagination
15:47
Teddy Smith
Рет қаралды 10 М.
Ajax in Spring Boot Thymeleaf
31:46
Learning Programming
Рет қаралды 17 М.
Desarrollo de un CRUD Completo en Spring Boot con MySQL, Thymeleaf y Bootstrap
1:23:43
The TRUTH About Golang Backend Frameworks
6:31
Melkey
Рет қаралды 133 М.