A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Registro en base de datos con JpaRepository

19/31
Recursos

Aportes 11

Preguntas 10

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

Otra forma de hacerlo es guardar directamente la lista ,
esta es una forma de hacerlo:

userRepository.saveAll(listUsers);

Para el que no quiera escribir mucho:

User user1 = new User("John", "[email protected]", LocalDate.of(2021, 3, 13));
		User user2 = new User("Marco", "[email protected]", LocalDate.of(2021, 12, 8));
		User user3 = new User("Daniela", "[email protected]", LocalDate.of(2021, 9, 8));
		User user4 = new User("Marisol", "[email protected]", LocalDate.of(2021, 6, 18));
		User user5 = new User("Karen", "[email protected]", LocalDate.of(2021, 1, 1));
		User user6 = new User("Carlos", "[email protected]", LocalDate.of(2021, 7, 7));
		User user7 = new User("Enrique", "[email protected]", LocalDate.of(2021, 11, 12));
		User user8 = new User("Luis", "[email protected]", LocalDate.of(2021, 2, 27));
		User user9 = new User("Paola", "[email protected]", LocalDate.of(2021, 4, 10));

Una cosa que puedes evitar cuando se guarda los usuarios es quitar la invocaci贸n del m茅todo stream e invocar el m茅todo forEach, quedando de esta manera.

list.forEach(userRepository::save);

Con esto se evita crear un stream para iterar la lista. El objetivo es iterar la lista y se puede invocando desde el objeto list el m茅todo forEach.

Como dato extra, h2 crea un endpoint y acceder a un tipo de terminal, como si fuera phpMyAdmin, a la hora de correr el programa, se puede acceder a ella mediante el path

/h2-console

Obvio primero iria lo de nuestro localhost, nuestro puerto y el path por default que tengamos, una vez accedido, en la parte de JDBC.url, le colocan la url que pusimos en la propiedad justo de la url, que en este caso el mio fue

jdbc:h2:mem:testDB

Una vez hecho esto accederan a la base de datos y se vera como un RDBMS y podran ejecutar querys, por ejemplo un

SELECT * FROM user

Y esto les traera los usuarios que acabamos de insertar en la BD

Aprendo mas en los comentarios que con este man del video

Me sale un error en la l铆nea donde se llama el userRepository::save, me dice que el m茅todo no existe.

Que es JpaRepository ?
Es el package que contiene las interfaces que extienden de JPA para que estas clases se conecten a la base de datos. Estas gestionan informaci贸n ya sea de buscar, borrar, actualizar o crear un registro en la base de datos.

Probablmente a algunos les salio un error de este estilo a este punto del curso :

Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Error de Sintaxis en sentencia SQL "insert into [*]user (birth_date, email, name, id_user) values (?, ?, ?, ?)"; se esperaba "identifier"

En mi caso lo solucione por que tenia mal el nombre de mi tabla en la clase User.

Lo tenia asi MAL

@Table(name = "user") //Al parecer "user" no se puede usar como nombre de tabla

Y lo cambie asi:

@Table(name = "users") // Lo puse en plural

En si le estaba dando un nombre que al parecer esta resevado o por alguna razon no es posible usarlo.

Se puede aprovechar lombok para usar la anotacion @Builder, usar el metodo of de List y asi quede un poco mas limpio el codigo y funcional ejemplo:

userRepository.saveAll(
               List.of(
               User.builder()
                       .name("pedro perez")
                       .email("[email protected]")
                       .birthDate(LocalDate.of(1995, 3, 18))
                       .build(),
               User.builder()
                       .name("Maria Rodriguez")
                       .email("[email protected]")
                       .birthDate(LocalDate.of(1999, 2, 20))
                       .build(),
               User.builder()
                       .name("Jose Perez")
                       .email("[email protected]")
                       .birthDate(LocalDate.of(1997, 10, 27))
                       .build()
   // crear lo que sean convenientes
       ));

Si les aparece este error:
org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement 鈥淐reate鈥︹; expected 鈥渋dentifier鈥

El datasource debe quedar asi:

dataSourceBuilder.url("jdbc:h2:mem:test;NON_KEYWORDS=USER");

En h2 user es una palabra reservada https://github.com/h2database/h2database/issues/3363

Hola, un proceso 煤til para extraer m茅todos en IntelliJ es clic derecho/Refactor/Extract Method鈥