Que increíble es spring ja ja ja. Todo esto lo hacia con java puro y duro y era mas complicado. A pesar de que no he visto Spring framework he podido entender casi todos los conceptos. Muchas gracias.
@@MitoCode Que pasaria si en la petición no se envia el param. Que debería considerar para que el metodo reconozca que no se está enviado parámetro y pues vaya por otro flujo. Ello es posible?
Lo práctico y sencillo que lo haces, pareces messi pero en informática.. Si cada curso fuera así ... Ojala hagas uno completo de spring boot con roles y otras cosas... De pago claro, te lo mereces
Tengo una BD con mySQL. Aunque el ejemplo me salio, fue bastante sorprendente para mi, que solo con definir el properties y usando el JpaRepository ya se hacia la inyecion de las dependencias y las propiedades del archivo. No hay que hacer logica de conexion a BD, ni de lectura de propiedades.
En el caso de que ya existan las tablas creadas con sus columnas, tendría que pasar a mano cada tabla a una clase @Entity o existe alguna forma de hacerlo automático, muchas gracias por tu respuesta :D
Que pasaria si en la petición no se envia el param. Que debería considerar para que el metodo reconozca que no se está enviado parámetro y pues vaya por otro flujo. Ello es posible?
Hola Mitocode, de que manera se indica/fuerza/anula que las dependencias de conexión a la base, te actualicen las tablas si agregas/quitas atributos de clase... o bien que no te la modifiquen si estas trabajando con una base ya elaborada y solo la queres utilizar.??? gracias.
Hola mito, buen curso, quisiera saber como activas la configuracion para que se auto importen las librerias, ya que en mi caso en mi IDE tengo que importarlas manualmente, gracias de antemano! un saludo.
Hola , no confundir jpa con el uso dé anotaciones, jpa es una especificación, se requiere de un producto que implemente esto, x ejemplo Hibernarte entre otros Y si se puede usar aún las anotaciones que mencionas
tube un error de el autowired, algo de que necesitaba un bean en la confiuracion de IPersonaRepo, buscando por un rato no veo nada diferente a ti, puede que sea por alguna dependencia o algo por el estilo pero bueno, seguire buscando
Revisa los imports. En mi caso, los imports de @Entity y casi todos los de persistence los estaba importando desde un paquete erróneo y me daba el mismo error que comentas. El correcto debería ser jakarta.persistence.Entity
Mito amigo saludos para ti, necesito de tu ayuda para mi tesis que estoy desarrollando. Cuando estás implementando las consultas en el JpaRepository utilizas dichas consultas proporcionadas por JPA, pero que sucede como en mi caso que uso algunas creadas por mi mediante la anotación @Query, o sea lo que quiero saber es que tipo de consultas uso ahí: JPQL o HQL??? Por ejemplo algo así: @Query("select sum(pd.procdNuevosIngresos) from PlanillaDatos as pd inner join Municipio as m on pd.mcpio.idMunicipio=m.idMunicipio where m.idMunicipio=?1") Integer nuevosIngresosTotalMcpio (long idM);
Jpa al heredar de crud tienes más métodos a tu disposición
4 ปีที่แล้ว
Una consulta, si deseo obtener un dato según una condicion, tengo que usar si o si el @Query para hacer un select y where a una tabla? O existe algun findBy que nos pueda ayudar con ello? Gracias por el video, buen aporte.
hola, genial todos los videos se explica muy bien y todo pero deberias pensar un poco en la gente que viene aca a aprender y no a adivinar lo que se esta haciendo como por ejemplo descargar lo necesario para que el curso se pueda realizar, me refiero al pgAdmin. hay gente que no tiene idea de como bajarlo u obtenerlo mucho menos configurarlo para crear una base de datos, al final lo que consigues con eso es que la gente deje el tutorial a medias y se vaya. saludos y muy buenos tutoriales :D
Escribí el código y me funcionó para crear la tabla en la bbdd pero a la hora de hacer un post en postman me devuelve error 404. Alguna idea de que puede haber ocurrido (la url está perfectamente definida y me funciona con otras aplicaciones que no usan bbdd)
Yo tengo una duda: Por que ya no usaste un estereotipo para la instancia repo que usaste para guardar los datos de una Persona? O acaso al hacer esto: IPersonaRepo extends JpaRepository Equivale a estereotipar o estas creando un repositorio Spring para guardar una instancia del objeto que hace la comunicacion con la BD?
Hola, tengo una pregunta. Si tengo una base de datos externa generada por otra aplicación, no lo pongo dentro de model para no coger la estructura. Puedo tener el fichero repository?
Mito! estoy arancando con spring y a su vez aprendiendo a usar patrones de diseño. Tengo una duda cuando usamos JPA asi como vos lo usas en tu ejemplo. ¿Estamos respetando tambien el patron DAO?. O simplemente hacemos uso de JPA que es un ORM. Y tengo otra duda, ¿se puede usar el patron DAO con JPA?
Hola, JPA no es un ORM, es una especificación, Hibernate es una implementación de JPA por ejemplo, en este caso Spring DATA es una abstracción que Spring ofrece que por dentro trabaja con hibernate-core para implementar la especificación jpa. En este caso el patrón que usa Spring data es el patrón repository, pero puedes cambiar eso por tu propia implementación del patrón dao
No funciona desde una ubuntu 18.04. Tengo PostgreSQL 10, con el pgAdmin . He creado la base de datos "demo". Y cuando intento arrancar la aplicacion web me contesta esto: 2019-06-09 17:34:51.761[0;39m [31mERROR[0;39m [35m6280[0;39m [2m---[0;39m [2m[ main][0;39m [36mcom.zaxxer.hikari.pool.HikariPool [0;39m [2m:[0;39m HikariPool-1 - Exception during pool initialization. org.postgresql.util.PSQLException: FATAL: database "demo" does not exist He tenido q modificar el archivo /etc/postgresql/10/main/pg_hba.conf para decirle a Postgres que la conexion era "trusted" porque si no, tampoco me permitía loguearme en PostgreSQL
Vale, ya lo he arreglado. Aparte de cambiar la conexion a "trusted" en pg_hba.conf, también hay que añadir el puerto en la conexión a postgres en el archivo application.properties. En mi caso, postgres se conecta al puerto 5433 de Ubuntu. Por tanto la cadena que he usado ha sido : spring.datasource.url=jdbc:postgresql://localhost:5433/demo1 (mi bd se llama 'demo1') Una vez hecho esto, todo ha ido como en el tutorial. Espero que haya servido Saludos
Ah, para ver los puertos en Ubuntu, usad este comando en la consola: $> netstat -putona (ref: ubunlog.com/como-comprobar-los-puertos-en-uso-en-linux/ ) Ahora si, saludos
segui todos los pasos pero me pide definir un bean en la interfaz IpersonaRepo, ya le puseo @Repository aun asi me lo pide, yo no vi que tu pusieras esa indicacioin en tus videos pero no puedo avanzar, estoy usando mySql me podrias orientar que esta mal ya he buscado y no encuentro la solucion gracias
Hola MitoCode y Compañeros Realice todo los pasos que se establece en el tutorial pero al momento de realizar las pruebas con postman para enjecutar un post o un get no me retorna ningun valor, solo obtengo los json vacios. Ejemplo: [{},{},{}], el programa se ejecuta de manera correcta y no me muestra ningun tipo de errro. Tu me podrias hacer el favor de ayudarme a solucionar este problema ?
He escuchado de algunas personas que los ORM como Hibernate o Spring Data JPA, consumen mucha memoria, por ese motivo algunos de mis compañeros de trabajo no los usan y prefieren hacer consultas nativas usando JDBC, ahora mi pregunta: ¿ Que opinas al respecto de esto, es real o sólo es un mito?
No se puede tener todo, es cierto que el performance es menor si hablamos frente miles o millones de resultados en queries... Es cosa de evaluar nos conviene productividad o performance en el proyecto Saludos
Hola Mito. Muchas Gracias por la explicación. Me quedé con una duda, y es que ¿Qué es un repositorio? no he encontrado una definición, sino sólo el uso de la interfaz y pues quisiera saber si tu me puedes definir que es. Muchas Gracias y buen día
@@MitoCode Muchas gracias por responder, después de investigar, creo que pude armar una definición mas o menos aceptable. Me gustaría compartirla y saber tu opinión: Repositorio (Reposotory) es el mediador entre la capa de acceso a datos [DAO], y la lógica de negocio [MVC] que permite gestionar el código SQL de manera transparente (es decir, sin la necesidad de escribir código SQL en la capa de Negocios), mediante la creación de una colección de objetos de domino en memoria. Lo que permite desacoplar la capa de Negocio y la de acceso de Datos. Saludos y buen día n.n
Hola mito, quería preguntar: ¿Si ya yo tengo mis tablas creadas, debo hacer el modelo, o hay una especie de estereotipo para decir que no la cree si ya existe como se hace por SQL?
@@tupapichulovegeta8354 hola bro, no realmente, lo que hice fue hacerme mi propia clase de conexión a mysql y no use está funcionalidad que ofrece spring ya que no era un proyecto con muchas tablas
¡Mito, qué buen video! Una consulta. Estoy intentando implementar una web simple que me retorne una consulta de una bd Postgres ubicada en Heroku. Estoy usando MVC con JDBC; sin embargo al querer realizar una consulta básica para probar la conexión, no obtengo data. Lo peor es que tampoco obtengo errores. Por otro lado, al realizar una conexión por la vista "Data Source Explorer" de Eclipse con el mismo driver JDBC y los mismos parámetros de url, user y password, sí puedo ver la data y la estructura de la BD. Sé que es muy atrevido preguntar por una solución exacta, pero ¿tienes alguna idea de lo que pueda estar sucediendo? Agradecería cualquier indicación.
Hola MitoCode, muy buenos tus videos, en la impresión de lista de personas te sale null, por que en línea 6 de tu template gretting.html estas imprimiendo la variable "name" sin embargo en tu método gretting mapeado("/listar") ya no tienes ese variable "name". saludos, extraordinario trabajo.
Tengo un pequeño problema, me aparece esto: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'demoController': Unsatisfied dependency expressed through field 'repo'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'IPersonaRepo': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Not a managed type: class com.apliacion.model.Persona
Revisa la estructura de tus paquetes, es muy probable que algún esté como com.example y los otros diferentes, por lo tanto no funciona la inyección de dependencias
Hola, y si ya tengo una base de datos existente, aún así es recomendable usar el JPA? No me interesa crear las entidades ni nada, solo usar la que ya tengo existente. Saludos!
Me aparece el error Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is java.lang.RuntimeException: Driver org.postgresql.Driver claims to not accept jdbcUrl, jdbd:postgresql://localhost:49778/demo No se que puede ser =(
MitoCode Estaba realizando el ejercicio con postgresql pero la linea que me daba error era spring.jpa.propoerties.hibernate.jdbc.lob.non_contextual_creation=true que se usa en el aplication.properties. La he quitado y me funciono la aplicación gracias.
Si alguien lo hace por estas fechas y con mysql como motor de base de datos, al menos a mí ya no me funcionó con las dependencias que se muestran en el video (que es entendible, pues es de hace algunos años), a mi me funcionó con estas dependencias:
Uhm no he usado Laravel, pero Spring framework es el principal, Spring Boot es un proyecto que agiliza y reduce las configuraciones de Spring Framework
@@MitoCode Hola, yo si he usado Laravel, y si, despues de ver los videos de este curso, son muy similares en arquitectura y patrones, cada uno con lo suyo, PHP esta muy avanzado y estandarizado ahora segun me di cuenta, comparado con JAVA.
Hola Mitocode, me da el siguiente error al iniciar la aplicación con PostgreSQL: El servidor requiere autenticación basada en contraseña, pero no se ha provisto ninguna contraseña. Al momento de la creación setee todo con contraseña, que puede estar faltando? Saludos.
Con eso me jaló con mysql, me salía un error con la zona horaria, hasta que encontré y agregué eso en la url: spring.jpa.hibernate.ddl-auto=update spring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:3306/speedbikes?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC spring.datasource.username=root spring.datasource.password=root.123
Al tratar de ejecutar el test me da un error ,, Circular view path [greeting]: would dispatch back to the current handler URL [/greeting] again. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.) javax.servlet.ServletException: Circular view path [greeting]: would dispatch back to the current handler URL [/greeting] again. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.) Al parecer es un error con la vista
hola, puedes agregar el contexto y lo agregas en el archivo application.properties , la siguiente linea server.servlet.context-path=/demoWeb y luego en el navegador localhost:8000/demoWeb/greeting Nota: Donde demoWeb es el contexto. Donde greeting es el alias que esta asociada al método que se encuentra en el controlador. Donde el numero 8000 es el puerto, tu tienes que poner el puerto en el que esta corriendo tu app, y si quieres cambiarlo agrega esta linea en el mismo archivo que te comente anteriormente . server.port=8000 por ejemplo.
Compañeros les pongo el codigo que a mi me funciono, sustituyan los datos por los que necesiten, en mi caso me conecte a una base fuera de mi pc y en un puerto diferente al 1433 spring.datasource.url=jdbc:sqlserver://XXX.XXX.XXX.XXX:PUERTO;databaseName=NombreDeLaBD spring.datasource.username=XXXX spring.datasource.password=XXXX spring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver spring.jpa.show-sql=false spring.jpa.properties.hibernate.format_sql=true spring.jpa.hibernate.properties.hibernate.dialect=org.hibernate.dialect.SQLServer2012Dialect spring.jpa.hibernate.ddl-auto=validate
alguien sabe como puedo hacer una búsqueda que se liste? osea ingreso un valor, puede ser el id y que se muestre en una tabla todo lo relacionado a ese valor
Saludos Mitocode y gracias por el buen tutorial. Tengo un problema con el autowired ya que no hay una clase que implemente la interface IPersonaRepo. Este es el error: Field personaRepo in Controller.DemoController required a bean of type 'repo.IPersonaRepo' that could not be found.
@@MitoCode me paso algo similar , en mi caso fue necesario agregar la etiqueta @EnablejpaRepositories("ruta de paquete" ) en el ejemplo seria "com.mitocode" y con eso funciona.
Hola me paso algo similar , en mi caso fue necesario agregar la etiqueta @EnablejpaRepositories("ruta de paquete" ) en el ejemplo seria "com.mitocode" y con eso funciona.
@Christian Muñoz Ospina hola, amigo el error se da Aveces por qué el Main del proyecto queda en una ruta más arriba de los paquetes, ejemplo: ruta Main com.mito ruta del repository com.mitocode, se debe agregar en el aplication, o donde esté el Main, cuando spring levanta el contexto. Cómo dije en el comentario dentro de las comillas va el paquete para este ejemplo sería com.mitocode.
No se a uds. pero no me funciona con la dependencia de "spring-boot-starter-data-jpa": "[INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building BEServices 0.0.1-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 3.407 s [INFO] Finished at: 2021-01-11T18:37:54-06:00 [INFO] Final Memory: 13M/123M [INFO] ------------------------------------------------------------------------ [ERROR] 31559 [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging." y con "spring-data-jpa" si funciona pero me pide además agregar librerias del javax.persistence. Ademas de que pide una definicion (Impl) de la interfaz Dao que extiende a JpaRepository: java.lang.IllegalStateException: Failed to load ApplicationContext Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'Controller': Unsatisfied dependency expressed through field 'myDao'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com...IUsuarioDao' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}" Que version mas nueva de Spring Boot me recomiendan para este tutorial?
que rayos paso en el 8:13, en que momento pidio la herrmienta? ni se como se llama, ni como se usa, de donde se descarga o que show??? He visto todos los videos hasta ahorita y en ninguno se ha mecionado nada, todo iba muy bien amigo. Por lo menos di que hay que instalarle al equipo :/ Si uno ve estos videos es porque no sabe, si fuera un master no tendría necesidad de verlo. Quedo pendiente de tus comentarios Gracias
@@MitoCode ya descubri que era, por error cree un paquete diferente donde estaba el main y no corria, supongo que deben contenerse en el mismo paquete para que lo pueda conseguir los demas archivos
Buena tarde mitocode, tengo una duda si quisiera seguir el tutorial con mysql, como puedo ubicar la dependencia correspondiente, porque he realizado la busqueda como org.mysql, pero no tengo exito, ¿ Cual es la dependencia de debo de declarar en el pom ?. De antemano gracias por la ayuda. Saludos,
Que increíble es spring ja ja ja. Todo esto lo hacia con java puro y duro y era mas complicado. A pesar de que no he visto Spring framework he podido entender casi todos los conceptos. Muchas gracias.
Los cursos y tutoriales hasta ahora me dejan muy satisfecho. Me parecen excelentes y explicativos.
MitoCode: "Esto tampoco es magia".
Also MitoCode: "Este archivo hace prácticamente magia".
Jajaja, excelente video!
😅
Tus explicaciones son muy claras y detalladas, gracias por compartir tus conocimientos y experiencia
Muchas gracias por estos videos, soy muy útiles para iniciar con Spring Boot
Excelente explicación. Gracias por los videos.
Nuevo Seguidor.
Excelente Video Gracias, por favor más contenido gratuito sos grande.
No se te olvide aumentar el tamaño de letra del editor, ya que muchos lo vemos en móvil también, excelente tu trabajo, gracias
Excelente, muchas gracias por los tutoriales.
Gracias por el video en el minuto 1:57 donde se le agrega la versión a postgres y maraca un warning el ide . ¿va trabajar correctamente de igual modo?
"Esto tampoco es magia" Gracias por ese apunte, me saco una buena risa
Son pocos los que agradecen, gracias por ver los videos también
@@MitoCode realmente gracias por hacerlos, verlos es lo mas fácil del mundo, claros los conceptos y directo a lo importante, que tengas un buen día
@@MitoCode Que pasaria si en la petición no se envia el param. Que debería considerar para que el metodo reconozca que no se está enviado parámetro y pues vaya por otro flujo. Ello es posible?
@@MitoCode ser
Gracvias profe, que crack
Muy buenos los videos
3:40 Mito y tienes videos sobre esos diseños de bd que indicas?
MitoCode, ¿podrías hacer un tutorial para configurar el pgAdmin?. Muchas gracias.
Linea 19, minuto 5:48. despues de Word") que mas diceeeeeeeeeeee, que no me funciona. por favorrrr
Lo práctico y sencillo que lo haces, pareces messi pero en informática.. Si cada curso fuera así ... Ojala hagas uno completo de spring boot con roles y otras cosas... De pago claro, te lo mereces
Hola. Gracias. Si lo hay desde hace unos años fundé la academia , toda la información está disponible en mitocode.com sección cursos online
Tengo una BD con mySQL. Aunque el ejemplo me salio, fue bastante sorprendente para mi, que solo con definir el properties y usando el JpaRepository ya se hacia la inyecion de las dependencias y las propiedades del archivo. No hay que hacer logica de conexion a BD, ni de lectura de propiedades.
como te logro salir ami si me salio pero tenia que crear la tabla persona para que me saliera
En el caso de que ya existan las tablas creadas con sus columnas, tendría que pasar a mano cada tabla a una clase @Entity o existe alguna forma de hacerlo automático, muchas gracias por tu respuesta :D
Hola, si existe, con plug-ins de jpa reverse engineering, como jboss tools
Que pasaria si en la petición no se envia el param. Que debería considerar para que el metodo reconozca que no se está enviado parámetro y pues vaya por otro flujo. Ello es posible?
Puedes colocar a un defaultParam pero si te olvidas de algo en la Url como parte del path variable te devolverá 404
@@MitoCode Gracias don Mito!!!
Hola Mitocode, de que manera se indica/fuerza/anula que las dependencias de conexión a la base, te actualicen las tablas si agregas/quitas atributos de clase... o bien que no te la modifiquen si estas trabajando con una base ya elaborada y solo la queres utilizar.??? gracias.
Hola, modiicando en el properties la estrategia ddl, con el atributo none, validate
Hola mito, buen curso, quisiera saber como activas la configuracion para que se auto importen las librerias, ya que en mi caso en mi IDE tengo que importarlas manualmente, gracias de antemano! un saludo.
Hola, uso auto import en sts o eclipse suele ser ctrl + shift + o si mal no recuerdo
Perfecto amigo
Usando JPA ya no se usa @Transactional? yo lo usaba en la implemantacion del DAO un @Repository @Transactional, esto ya no se usa?
Hola , no confundir jpa con el uso dé anotaciones, jpa es una especificación, se requiere de un producto que implemente esto, x ejemplo Hibernarte entre otros
Y si se puede usar aún las anotaciones que mencionas
@@MitoCode muchas gracias
tube un error de el autowired, algo de que necesitaba un bean en la confiuracion de IPersonaRepo, buscando por un rato no veo nada diferente a ti, puede que sea por alguna dependencia o algo por el estilo pero bueno, seguire buscando
Revisa tus anotaciones quizás olvidaste alguna
Revisa los imports. En mi caso, los imports de @Entity y casi todos los de persistence los estaba importando desde un paquete erróneo y me daba el mismo error que comentas. El correcto debería ser jakarta.persistence.Entity
Mito amigo saludos para ti, necesito de tu ayuda para mi tesis que estoy desarrollando. Cuando estás implementando las consultas en el JpaRepository utilizas dichas consultas proporcionadas por JPA, pero que sucede como en mi caso que uso algunas creadas por mi mediante la anotación @Query, o sea lo que quiero saber es que tipo de consultas uso ahí: JPQL o HQL???
Por ejemplo algo así:
@Query("select sum(pd.procdNuevosIngresos) from PlanillaDatos as pd inner join Municipio as m on pd.mcpio.idMunicipio=m.idMunicipio where m.idMunicipio=?1")
Integer nuevosIngresosTotalMcpio (long idM);
Hola buen día, es JPQL, y también SQL si es native Query
@@MitoCode Gracias por responder valió de mucho para mi. Suerte en lo que haces. Salu2
Hola!!!
Consulta cual es la diferencia de utilizar JPARepository y CrudRepository ??
Jpa al heredar de crud tienes más métodos a tu disposición
Una consulta, si deseo obtener un dato según una condicion, tengo que usar si o si el @Query para hacer un select y where a una tabla? O existe algun findBy que nos pueda ayudar con ello? Gracias por el video, buen aporte.
Ambos enfoques son válidos, findByNombreAtributo o el Query
hola, genial todos los videos se explica muy bien y todo pero deberias pensar un poco en la gente que viene aca a aprender y no a adivinar lo que se esta haciendo como por ejemplo descargar lo necesario para que el curso se pueda realizar, me refiero al pgAdmin. hay gente que no tiene idea de como bajarlo u obtenerlo mucho menos configurarlo para crear una base de datos, al final lo que consigues con eso es que la gente deje el tutorial a medias y se vaya.
saludos y muy buenos tutoriales :D
Escribí el código y me funcionó para crear la tabla en la bbdd pero a la hora de hacer un post en postman me devuelve error 404.
Alguna idea de que puede haber ocurrido (la url está perfectamente definida y me funciona con otras aplicaciones que no usan bbdd)
Hola exelente video tengo una consulta, como seria con una conexión a Mysql Workbench 8.0? es decir que dependencias agregar?
Modificar el pom.xml y cadena de conexión del properties, no es difícil, esta en las primeras búsquedas de Google
Yo tengo una duda:
Por que ya no usaste un estereotipo para la instancia repo que usaste para guardar los datos de una Persona?
O acaso al hacer esto:
IPersonaRepo extends JpaRepository
Equivale a estereotipar o estas creando un repositorio Spring para guardar una instancia del objeto que hace la comunicacion con la BD?
Cuando usas spring data jpa no es necesario usar stereotypo
@@MitoCode gracias bro
Hola, tengo una pregunta.
Si tengo una base de datos externa generada por otra aplicación, no lo pongo dentro de model para no coger la estructura.
Puedo tener el fichero repository?
Hola, en ese caso mejor consume la base de datos a través de un servicio rest con rest template
Mito! estoy arancando con spring y a su vez aprendiendo a usar patrones de diseño.
Tengo una duda cuando usamos JPA asi como vos lo usas en tu ejemplo. ¿Estamos respetando tambien el patron DAO?.
O simplemente hacemos uso de JPA que es un ORM.
Y tengo otra duda, ¿se puede usar el patron DAO con JPA?
Hola, JPA no es un ORM, es una especificación, Hibernate es una implementación de JPA por ejemplo, en este caso Spring DATA es una abstracción que Spring ofrece que por dentro trabaja con hibernate-core para implementar la especificación jpa.
En este caso el patrón que usa Spring data es el patrón repository, pero puedes cambiar eso por tu propia implementación del patrón dao
Muchas gracias por tomarte la molestia en responder@@MitoCode!
Me aclaraste las dudas.
Muy buenos tus videos! Sigue así!
Para conectarse a 2 base datos? en realidad, 1 base de datos principal y otra para traer unos datos.
No funciona desde una ubuntu 18.04. Tengo PostgreSQL 10, con el pgAdmin . He creado la base de datos "demo". Y cuando intento arrancar la aplicacion web me contesta esto:
2019-06-09 17:34:51.761[0;39m [31mERROR[0;39m [35m6280[0;39m [2m---[0;39m [2m[ main][0;39m [36mcom.zaxxer.hikari.pool.HikariPool [0;39m [2m:[0;39m HikariPool-1 - Exception during pool initialization.
org.postgresql.util.PSQLException: FATAL: database "demo" does not exist
He tenido q modificar el archivo /etc/postgresql/10/main/pg_hba.conf para decirle a Postgres que la conexion era "trusted" porque si no, tampoco me permitía loguearme en PostgreSQL
Vale, ya lo he arreglado. Aparte de cambiar la conexion a "trusted" en pg_hba.conf, también hay que añadir el puerto en la conexión a postgres en el archivo application.properties.
En mi caso, postgres se conecta al puerto 5433 de Ubuntu. Por tanto la cadena que he usado ha sido :
spring.datasource.url=jdbc:postgresql://localhost:5433/demo1
(mi bd se llama 'demo1')
Una vez hecho esto, todo ha ido como en el tutorial.
Espero que haya servido
Saludos
Ah, para ver los puertos en Ubuntu, usad este comando en la consola:
$> netstat -putona
(ref: ubunlog.com/como-comprobar-los-puertos-en-uso-en-linux/ )
Ahora si, saludos
Donde compro este curso completo ?
Hola, hay un curso online en vivo que extiende estos temas y más en mitocode.com/curso/javafs
segui todos los pasos pero me pide definir un bean en la interfaz IpersonaRepo, ya le puseo @Repository aun asi me lo pide, yo no vi que tu pusieras esa indicacioin en tus videos pero no puedo avanzar, estoy usando mySql me podrias orientar que esta mal ya he buscado y no encuentro la solucion gracias
Verifica la estructura de paquetes quizás no compartan la misma raíz de nombre
Hola MitoCode y Compañeros
Realice todo los pasos que se establece en el tutorial pero al momento de realizar las pruebas con postman para enjecutar un post o un get no me retorna ningun valor, solo obtengo los json vacios. Ejemplo: [{},{},{}], el programa se ejecuta de manera correcta y no me muestra ningun tipo de errro. Tu me podrias hacer el favor de ayudarme a solucionar este problema ?
Hola, quizás tus get y set están incorrectos
como puedo utilizar spring boot con hibernate?
He escuchado de algunas personas que los ORM como Hibernate o Spring Data JPA, consumen mucha memoria, por ese motivo algunos de mis compañeros de trabajo no los usan y prefieren hacer consultas nativas usando JDBC, ahora mi pregunta: ¿ Que opinas al respecto de esto, es real o sólo es un mito?
No se puede tener todo, es cierto que el performance es menor si hablamos frente miles o millones de resultados en queries... Es cosa de evaluar nos conviene productividad o performance en el proyecto
Saludos
MitoCode una consulta como puedo llamar un procedimiento almacenado en jpaRepository porque tengo una consulta compleja
Con un native query desde @Query
Esta herramienta es muy pesada. Que equipo tienes? En mi computadora el Spring Tool Suite 4 se queda pegado a cada rato. Asi no se puede trabajar
Cuando subo el servicio no me genera la base de datos en automatico. A que se debe? Estoy usando mysql.
Hola buen día, checa la estructura de tus paquetes... Deben tener la misma raíz en nombre...
@@MitoCode si tengo exactamente la misma raíz en el nombre
Hola Mito. Muchas Gracias por la explicación. Me quedé con una duda, y es que ¿Qué es un repositorio? no he encontrado una definición, sino sólo el uso de la interfaz y pues quisiera saber si tu me puedes definir que es. Muchas Gracias y buen día
Habla sobre el patrón de acceso a datos repository, podrás encontrar información de ello bajo ese término
@@MitoCode Muchas gracias por responder, después de investigar, creo que pude armar una definición mas o menos aceptable. Me gustaría compartirla y saber tu opinión:
Repositorio (Reposotory) es el mediador entre la capa de acceso a datos [DAO], y la lógica de negocio [MVC] que permite gestionar el código SQL de manera transparente (es decir, sin la necesidad de escribir código SQL en la capa de Negocios), mediante la creación de una colección de objetos de domino en memoria. Lo que permite desacoplar la capa de Negocio y la de acceso de Datos.
Saludos y buen día n.n
Así es, da gusto tener seguidores que complementan mejor investigando, te deseo muchos éxitos profesionales
@@MitoCode muchas gracias :) tu comentario me da fuerza para seguir adelante!! eres el mejor MitoCode
MitoCode,
tendra un ejemplo con busqueda de varios parametros?
saludos,
Debes usar @Query y crear tu sentencia jpql
Hola mito, quería preguntar:
¿Si ya yo tengo mis tablas creadas, debo hacer el modelo, o hay una especie de estereotipo para decir que no la cree si ya existe como se hace por SQL?
Si ya tienes, puedes usar ingeniería inversa y que el mapeo se haga automático...
@@MitoCode y como hago eso para no generar 1000 tablas como persona.java , digo que se generen en automatico
Debes usar plug in jpa tools jpa from datasource
Hola Cristian, lograste hacer la ingenieria inversa con Spring JPA? me puedes indicar los pasos por favor.
@@tupapichulovegeta8354 hola bro, no realmente, lo que hice fue hacerme mi propia clase de conexión a mysql y no use está funcionalidad que ofrece spring ya que no era un proyecto con muchas tablas
¡Mito, qué buen video!
Una consulta. Estoy intentando implementar una web simple que me retorne una consulta de una bd Postgres ubicada en Heroku. Estoy usando MVC con JDBC; sin embargo al querer realizar una consulta básica para probar la conexión, no obtengo data. Lo peor es que tampoco obtengo errores.
Por otro lado, al realizar una conexión por la vista "Data Source Explorer" de Eclipse con el mismo driver JDBC y los mismos parámetros de url, user y password, sí puedo ver la data y la estructura de la BD.
Sé que es muy atrevido preguntar por una solución exacta, pero ¿tienes alguna idea de lo que pueda estar sucediendo?
Agradecería cualquier indicación.
Verifica tu application properties a veces suelen confundir password con data-password
Hola MitoCode, muy buenos tus videos, en la impresión de lista de personas te sale null, por que en línea 6 de tu template gretting.html estas imprimiendo la variable "name" sin embargo en tu método gretting mapeado("/listar") ya no tienes ese variable "name". saludos, extraordinario trabajo.
Tengo un pequeño problema, me aparece esto:
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'demoController': Unsatisfied dependency expressed through field 'repo'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'IPersonaRepo': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Not a managed type: class com.apliacion.model.Persona
Revisa tus anotaciones es probable que por ahí esté el error
@@MitoCode Muchas gracias. Ya revisé. Todo bien
@@sbateca Hola Sergio, encontraste el error??
Hola mitocode, porque me sale error de que no se pudo construir el bean desde IPersonaRepo. Saludos
Bueno quizás te olvidaste alguna anotación de stereotype
@@MitoCode la ruta del package estaba distinto, xd no habia dado cuenta.. por eso no lo escaneaba. Gracias 🙂
Tengo problemas al momento de importar @Entity, no me aparece la opción, necesitare algo?
Si, la dependencia jpa en el pom
Hola, no me guarda nada y cuando ingreso a greeting me muestra un no found
Revisa la estructura de tus paquetes, es muy probable que algún esté como com.example y los otros diferentes, por lo tanto no funciona la inyección de dependencias
Hola, y si ya tengo una base de datos existente, aún así es recomendable usar el JPA? No me interesa crear las entidades ni nada, solo usar la que ya tengo existente. Saludos!
Puedes usar plug-ins para jpa en ingeniería reversa
Hola Josh, lograste hacer la ingenieria inversa con Spring JPA? me puedes indicar los pasos por favor.
Seria hermoso que existiera alguna herramienta para construir las clases entity a partir de una ingeniería inversa
Lo existe esta dentro de jpa tools de marketplace de eclipse
Me aparece el error Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is java.lang.RuntimeException: Driver org.postgresql.Driver claims to not accept jdbcUrl, jdbd:postgresql://localhost:49778/demo
No se que puede ser =(
MitoCode Estaba realizando el ejercicio con postgresql pero la linea que me daba error era spring.jpa.propoerties.hibernate.jdbc.lob.non_contextual_creation=true que se usa en el aplication.properties. La he quitado y me funciono la aplicación gracias.
Si alguien lo hace por estas fechas y con mysql como motor de base de datos, al menos a mí ya no me funcionó con las dependencias que se muestran en el video (que es entendible, pues es de hace algunos años), a mi me funcionó con estas dependencias:
org.springframework.data
spring-data-jpa
com.mysql
mysql-connector-j
runtime
Hola Spring Boot MVC es a JAVA lo que Laravel es a PHP?
Uhm no he usado Laravel, pero Spring framework es el principal, Spring Boot es un proyecto que agiliza y reduce las configuraciones de Spring Framework
@@MitoCode Hola, yo si he usado Laravel, y si, despues de ver los videos de este curso, son muy similares en arquitectura y patrones, cada uno con lo suyo, PHP esta muy avanzado y estandarizado ahora segun me di cuenta, comparado con JAVA.
Intenté hacer lo mismo pero con oracle, no funciona.
Hola Mitocode, me da el siguiente error al iniciar la aplicación con PostgreSQL:
El servidor requiere autenticación basada en contraseña, pero no se ha provisto ninguna contraseña.
Al momento de la creación setee todo con contraseña, que puede estar faltando?
Saludos.
Hola, revisa tu application.properties seguro has puesto mal el atributo de la contraseña, no es data-password
metodo save en un Getmapping?
Es un ejemplo, lo ideal es post para inserción o seguir un modelo de madurez como Richardson
Con eso me jaló con mysql, me salía un error con la zona horaria, hasta que encontré y agregué eso en la url:
spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:3306/speedbikes?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root.123
Al tratar de ejecutar el test me da un error ,, Circular view path [greeting]: would dispatch back to the current handler URL [/greeting] again. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.)
javax.servlet.ServletException: Circular view path [greeting]: would dispatch back to the current handler URL [/greeting] again. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.) Al parecer es un error con la vista
hola, puedes agregar el contexto y lo agregas en el archivo application.properties , la siguiente linea
server.servlet.context-path=/demoWeb
y luego en el navegador localhost:8000/demoWeb/greeting
Nota:
Donde demoWeb es el contexto.
Donde greeting es el alias que esta asociada al método que se encuentra en el controlador.
Donde el numero 8000 es el puerto, tu tienes que poner el puerto en el que esta corriendo tu app, y si quieres cambiarlo agrega esta linea en el mismo archivo que te comente anteriormente .
server.port=8000 por ejemplo.
@@fanygomez3689 Gracias!!
@@duticalls5892 de nada, espero que te haya sido útil.
me podrias compartir por favor el archivo del aplicationPropertes para SQL Server 2012 con ip externa y puerto 1435?
Compañeros les pongo el codigo que a mi me funciono, sustituyan los datos por los que necesiten, en mi caso me conecte a una base fuera de mi pc y en un puerto diferente al 1433
spring.datasource.url=jdbc:sqlserver://XXX.XXX.XXX.XXX:PUERTO;databaseName=NombreDeLaBD
spring.datasource.username=XXXX
spring.datasource.password=XXXX
spring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.jpa.show-sql=false
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.hibernate.properties.hibernate.dialect=org.hibernate.dialect.SQLServer2012Dialect
spring.jpa.hibernate.ddl-auto=validate
import javax.pesistence.Entity no me pinta, en el spring boot que tengo la anotación mas cercana es @EntityScan
Te falta agregar en el pom la dependencia Spring data jpa
alguien sabe como puedo hacer una búsqueda que se liste? osea ingreso un valor, puede ser el id y que se muestre en una tabla todo lo relacionado a ese valor
tienes q crear tus entity q son tus modelos de BD ya diseñado luego creas las entity y usas las anotaciones JPA
Podrias hacer una redireccion tras insertar exitosamente con return "redirect:greeting"; por ejemplo
¿Cómo sería para el caso de querer trabajarlo en MongoDB?
Gracias.
Debes usar la librería correspondiente y el concepto de entidades cambiaría por colecciones, objetos por documentos
@@MitoCode Gracias
Saludos Mitocode y gracias por el buen tutorial. Tengo un problema con el autowired ya que no hay una clase que implemente la interface IPersonaRepo. Este es el error: Field personaRepo in Controller.DemoController required a bean of type 'repo.IPersonaRepo' that could not be found.
Hola buen día, ese error hace referencia a que falta una anotación en una clase
@@MitoCode me paso algo similar , en mi caso fue necesario agregar la etiqueta @EnablejpaRepositories("ruta de paquete" ) en el ejemplo seria "com.mitocode" y con eso funciona.
Hola me paso algo similar , en mi caso fue necesario agregar la etiqueta @EnablejpaRepositories("ruta de paquete" ) en el ejemplo seria "com.mitocode" y con eso funciona.
@Christian Muñoz Ospina hola, amigo el error se da Aveces por qué el Main del proyecto queda en una ruta más arriba de los paquetes, ejemplo: ruta Main com.mito ruta del repository com.mitocode, se debe agregar en el aplication, o donde esté el Main, cuando spring levanta el contexto. Cómo dije en el comentario dentro de las comillas va el paquete para este ejemplo sería com.mitocode.
Hola mitocode, me sale el siguiente error "El servidor requiere autenticación basada en contraseña"
Deshabilitar Spring security de momento
mitocode el github franciscovaras/DemoWeb2
@@MitoCode donde se hace eso?
Hola ¿que es el mapeo?
Es una jerga o término usado para referirse en representar el modelo de base de datos pero a nivel de clases en algún lenguaje de programación
No se a uds. pero no me funciona con la dependencia de "spring-boot-starter-data-jpa":
"[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building BEServices 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.407 s
[INFO] Finished at: 2021-01-11T18:37:54-06:00
[INFO] Final Memory: 13M/123M
[INFO] ------------------------------------------------------------------------
[ERROR] 31559
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging."
y con "spring-data-jpa" si funciona pero me pide además agregar librerias del javax.persistence.
Ademas de que pide una definicion (Impl) de la interfaz Dao que extiende a JpaRepository:
java.lang.IllegalStateException: Failed to load ApplicationContext
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'Controller': Unsatisfied dependency expressed through field 'myDao'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com...IUsuarioDao' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}"
Que version mas nueva de Spring Boot me recomiendan para este tutorial?
Oe mito que paja !
que rayos paso en el 8:13, en que momento pidio la herrmienta? ni se como se llama, ni como se usa, de donde se descarga o que show???
He visto todos los videos hasta ahorita y en ninguno se ha mecionado nada, todo iba muy bien amigo. Por lo menos di que hay que instalarle al equipo :/ Si uno ve estos videos es porque no sabe, si fuera un master no tendría necesidad de verlo.
Quedo pendiente de tus comentarios
Gracias
Hola, es pgAdmin y lo puedes descargar de su página oficial
el pgadmin es un administrador de postgres. si quieres puedes hacerlo desde cualquier administrador de base de datos, o por consola.
Tipico, cuando tienes exactamente el mismo codigo pero a ti no te corre
Entonces no tienes el mismo código o estructura... El código está disponible en github.com/mitocode21
Tome el proyecto de git y tampoco corre me da name=default
@@MitoCode ya descubri que era, por error cree un paquete diferente donde estaba el main y no corria, supongo que deben contenerse en el mismo paquete para que lo pueda conseguir los demas archivos
10
Vi que inyecto un repository a un controller y me tengo que salir del video
Lo ideal sería un service pero es un curso básico el de TH-cam para más profesional en mitocode.com/curso/javafs
Me sale el sig error
Not a managed type: class com.mitocode.Persona
si tienes 100 tablas muerto
Pues existe plugins de ingeniería inversa para mapeo desde una conexión existente
Buena tarde mitocode, tengo una duda si quisiera seguir el tutorial con mysql, como puedo ubicar la dependencia correspondiente, porque he realizado la busqueda como org.mysql, pero no tengo exito, ¿ Cual es la dependencia de debo de declarar en el pom ?. De antemano gracias por la ayuda. Saludos,
Mysql 8 maven es lo usual ahora