Mini Curso: Consultas Avanzadas SQL sin esfuerzo con Spring Data JPA Specifications

Поделиться
HTML-код
  • Опубликовано: 24 дек 2024

Комментарии • 49

  • @ElCazadorDigital
    @ElCazadorDigital  Год назад +1

    ✅Repo Git: github.com/luismarquez96c/advanced-jpa-queries-with-specifications.git
    ✅SQL: github.com/luismarquez96c/advanced-jpa-queries-with-specifications/blob/main/src/main/resources/import.sql

  • @miusicpro-musicaparacreado9513
    @miusicpro-musicaparacreado9513 Год назад +1

    Gracias este tipo de videos me sirve para volverme mas fuerte.

  • @andrew_755
    @andrew_755 Год назад

    Valioso contenido, un crack, muchas gracias!

  • @carloseduardoangelescabana2332
    @carloseduardoangelescabana2332 Год назад +1

    Hermano, muchas gracias, soy nuevo en esto y tuve este problema, busque alternativas e información distinta sobre el mismo tema, pero ninguna tan clara y precisa como esta, Gracias, Saludos.

    • @ElCazadorDigital
      @ElCazadorDigital  Год назад

      Qué tal colega!
      Para mi es un gusto poder ayudarles, sigo trabajando para traer más y mejor contenido.
      Saludos!

  • @brauliojaureguy2065
    @brauliojaureguy2065 7 месяцев назад +2

    Que maldito jefeeeeee, genio, idiolo, titan, campeon, bestia, animalllll, muchas gracias!!!!

    • @ElCazadorDigital
      @ElCazadorDigital  7 месяцев назад

      Hola colega! Por nada, para eso estamos, para ayudar.
      Saludos 👋👋👋

  • @ronaldgarciavazquez8232
    @ronaldgarciavazquez8232 5 месяцев назад

    No había visto este tutorial Ing. es simplemente genial... Una vez más muchísimas gracias.

    • @ElCazadorDigital
      @ElCazadorDigital  5 месяцев назад

      Qué tal colega!
      Un gusto.
      Qué bueno que te haya servidor.
      Saludos!

  • @MatesBinarios
    @MatesBinarios Год назад

    Excelente mini curso, para los que ya sabemos Criteria API, es literalmente Criteria, pero con una capa de abstracción por encima.

  • @danielespanadero
    @danielespanadero Год назад +2

    Muchas gracias por este excelente material, te has ganado un nuevo suscriptor! Un fuerte abrazo y a seguir así! 🙂

    • @ElCazadorDigital
      @ElCazadorDigital  Год назад

      Hola camarada, un saludo hasta donde estés, gracias por tu comentario, nos vemos en el próximo vídeo crack!

  • @carlosengui9645
    @carlosengui9645 6 месяцев назад

    Muchas gracias de nuevo por tus enseñanzas, en otro canalaes o cursos no explican estas cosas.
    Es más te dicen que las Query By Example son las mejores y no explican que puedes hacer métodos donde los parámetros no sean oligatorios.

  • @fcalderonsanchez
    @fcalderonsanchez 6 месяцев назад

    Hola Luis! Muchas gracias por compartir tu conocimiento! Tu video es muy bueno y muy importante por ser aplicable a escenarios reales de trabajo de software developers. La solución de los predicados que enseñas definitivamente es la más profesional frente a los query methods.
    Sin embargo me dejó una duda: ¿Se puede hacer lo mismo usando JQL con la opción de querys nativos? No se si actualmente puede recibir como parametro las condiciones (y acoplarlas al value del query nativo) previamente construidas desde el service y que sea ahí donde se armen las condiciones según el contenido de los campos que el usuario específique.
    No se si se entendió mi consulta; espero que si y estaré atento por si recibes este mensaje y decides contestarme. Nuevamente, gracias!

  • @javo310186
    @javo310186 7 месяцев назад

    Muy interesante tu video muchas gracias me has brindado una nueva opción para muchos contextos, solo una consulta. ¿Para grandes volúmenes de datos es recomendable usar los Specifications o ya sería mejor manejar JPQL para hacer la consulta directa sin enviar con los filtros que no usaremos?

  • @brayannovoa2623
    @brayannovoa2623 Год назад +1

    Explicación y practica 10/10, un saludo!

  • @moriljeanfrancois8532
    @moriljeanfrancois8532 Год назад +3

    hola estimado luis. esto no justo que tu canal tiene contenido tan valiosas y tan avanzado. tiene tan poco suscriptores. y tu canal no aparece en búsqueda de spring en youtube. nada mas que decir gracias .que sigue creciendo

    • @ElCazadorDigital
      @ElCazadorDigital  Год назад +1

      Qué tal! Gracias por el comentario.
      Espero seguir creciendo poco a poco para poder ayudar a más personas.
      Saludos!

  • @misaelvilca3499
    @misaelvilca3499 Год назад

    Excelente mini curso. Justo estaba investigando como realizar consultas más avanzadas. Me sirvió un montón.

  • @karlral
    @karlral Год назад

    Excelente explicacion. Como podria optimizar consulta sin que envie todos los datos de subconjunto de datos relacionados.

    • @ElCazadorDigital
      @ElCazadorDigital  Год назад

      Gracias por tu comentario. Puedes investigar un poco de las Proyecciones, una projection es para jpa lo que una vista le es a SQL.

  • @didiersilva8679
    @didiersilva8679 Год назад

    Excelente video. Una consulta en la parte de root.get("price"), no se puede de alguna otra forma hacer referencia al atributo de la clase o entidad en lugar de quemarlo ahí? Gracias...

    • @ElCazadorDigital
      @ElCazadorDigital  Год назад

      Hola Colega!
      Si se puede sustituir el "price" por algo más robusto. Eso se llama "Meta modelos de entidades JPA" y la librería que genera eso se llama "Hibernate Jpa Metamodel". Asi en lugar de hacer un root.get("price") podrás hacer un root.get(Product_.price).
      Te dejo el plugin:
      org.bsc.maven
      maven-processor-plugin
      3.3.3

      process
      process
      generate-sources


      org.hibernate
      hibernate-jpamodelgen
      6.2.13.Final

  • @xonlinex666
    @xonlinex666 Год назад

    Gracias, esperaba esto 👍.

    • @ElCazadorDigital
      @ElCazadorDigital  Год назад

      Por nada! Me alegra que te haya ayudado el contenido. Saludos

  • @eloyhuallamaperez5225
    @eloyhuallamaperez5225 Год назад

    Estimado, muy bueno tu video. Sabes, estoy creando una consulta que devuelva datos específicos y para ello hago que el método retorno una lista de un dto, si quiero que esta consulta dinámica con valores que coincidan y ordenamiento, cómo haría en este caso? Espero me puedas ayudar, gracias.

    • @ElCazadorDigital
      @ElCazadorDigital  Год назад

      Hola Colega!
      Es muy fácil, la interfaz JpaSpecificationExecutor soporte recibir como argumento objetos Pageable, asi solo debes crear un Pageable asi:
      Pageable pageable = PageRequest.of( page, size, sortObject );
      y el sortObject lo creas así:
      Sort sortObject = Sort.by("tu campo").ascending();
      Saludos!

  • @ronaldomanrique3800
    @ronaldomanrique3800 Год назад

    muchas gracias por el contenido pero me genero una pregunta,
    si quiero "mostrar" solo los campos por los cuales también estoy filtrando de una tabla que tiene muchos campos. como lo haría?
    o en la entidad solo agrego los campos que quiero ver o tendría que incluir todos los de la tabla

    • @ElCazadorDigital
      @ElCazadorDigital  Год назад

      Puedes usar proyecciones que son vistas sql pero a nivel de JPA.
      Es decir, te permiten genear un DTO solo con los datos que deseas y que el mismo repositorio te devuelva solo esos datos.
      Saludos!

  • @carlosengui9645
    @carlosengui9645 7 месяцев назад

    Buenas, enhorabiuena por tu canal.
    decirte que el enlace SQL qude aportas en el comentario fijado, ya no existe.
    Un saludo.

    • @ElCazadorDigital
      @ElCazadorDigital  6 месяцев назад

      Hola colega!
      Es cierto, movi el archivo en el drive!
      Gracias! Lo modifico en estos días. Saludos!

    • @carlosengui9645
      @carlosengui9645 6 месяцев назад

      Gracias a ti!!!

    • @ElCazadorDigital
      @ElCazadorDigital  6 месяцев назад

      github.com/luismarquez96c/advanced-jpa-queries-with-specifications/blob/main/src/main/resources/import.sql

  • @mariaconcepcioncanasdemarq2123

    Exelente

  • @erastusmarrokin9184
    @erastusmarrokin9184 Год назад

    una consulta como puedo agregar offet y limit en la especificacion

    • @ElCazadorDigital
      @ElCazadorDigital  Год назад

      Hola, cuando haces el findAll ahí le puedes pasar la pagina:
      Crear páginacion: findAll( specification, PageRequest.of(0,10) );
      El 0 es el número de página y el 10 el tamaño de elementos por página. Esos dos son parámetros que tienes que recibir

    • @ElCazadorDigital
      @ElCazadorDigital  Год назад

      Saludos

    • @erastusmarrokin9184
      @erastusmarrokin9184 Год назад

      Gracias!! esa parte ya lo habia mirado, solo que al hacer paginas no me dan los resultados cuando metes el offset y el limit

    • @erastusmarrokin9184
      @erastusmarrokin9184 Год назад

      query.setMaxResults(10).setFirstResult(1); encontre estos metodos pero no me funcionan. solo funcionan con el entityManager.createQuery

    • @ElCazadorDigital
      @ElCazadorDigital  Год назад

      @@erastusmarrokin9184 hazlo con la interfaz Pageable de spring.
      Entra a la interfaz JpaSpecificationExecutor y verás que si recibe objetos Pageable

  • @carlosmollapaza9267
    @carlosmollapaza9267 Год назад +1

    Se tiene problemas con joi y fetch

    • @ElCazadorDigital
      @ElCazadorDigital  Год назад

      Qué tal, no deberías tener problemas al general ese tipo de queries Carlos.

  • @vijb1475
    @vijb1475 Год назад

    Tengo una query que tiene mas de una cláusula in en el where
    El problema es que 2 de ellas superan los 1000 elementos
    Alguna solución usando especificaciones

    • @ElCazadorDigital
      @ElCazadorDigital  Год назад

      Hola campeón! En ese caso deberías considerar usar un Procedure Store así mejoras la eficicia y la complejidad de la query ya que solo tendrás que mandar a llamar el PS desde tu backend, lo cual es muy fácil.
      Saludos!