Spring Boot JPA y Su Configuración
Spring Boot JPA y Su Configuración
Tabla de Contenidos
CURSO JPA
GRATIS
APUNTATE!!
www.arquitecturajava.com
Spring Boot JPA y su configuración
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.arquitecturajava</groupId>
<artifactId>jpa</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>jpa</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
www.arquitecturajava.com
Spring Boot JPA y su configuración
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
www.arquitecturajava.com
Spring Boot JPA y su configuración
package com.arquitecturajava.jpa.models;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class Persona {
@Id
private String nombre;
private String apellidos;
private int edad;
public String getNombre() {
return nombre;
www.arquitecturajava.com
Spring Boot JPA y su configuración
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getApellidos() {
return apellidos;
}
public void setApellidos(String apellidos) {
this.apellidos = apellidos;
}
public int getEdad() {
return edad;
}
public void setEdad(int edad) {
this.edad = edad;
}
public Persona(String nombre, String apellidos, int edad) {
super();
this.nombre = nombre;
this.apellidos = apellidos;
this.edad = edad;
}
public Persona() {
super();
}
www.arquitecturajava.com
Spring Boot JPA y su configuración
spring.datasource.url=jdbc:mysql://localhost:8889/springjpa
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver.class=com.mysql.jdbc.Driver
spring.jpa.properties.hibernate.dialect =
org.hibernate.dialect.MySQL5Dialect
Repositorios de Spring
Una vez configurado Spring para poder gestionar JPA . La forma mas sencilla de trabajar
con ello es usar un @Repository con @PersistenceContext de tal manera que podamos crear
un repositorio amigable usando un interface y su implementación.
www.arquitecturajava.com
Spring Boot JPA y su configuración
Veamos el código:
package com.arquitecturajava.web1.repositories;
import java.util.List;
import com.arquitecturajava.web1.models.Persona;
List<Persona> buscarTodos();
www.arquitecturajava.com
Spring Boot JPA y su configuración
Implementamos:
package com.arquitecturajava.web1.repositories;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.TypedQuery;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import com.arquitecturajava.web1.models.Persona;
@Repository
public class PersonaRepositoryJPA implements PersonaRepository {
@PersistenceContext
EntityManager em;
@Override
public List<Persona> buscarTodos() {
TypedQuery<Persona> consulta= em.createQuery("select p
from Persona p",Persona.class);
return consulta.getResultList();
}
@Transactional
public void insertar(Persona persona) {
em.persist(persona);
}
@Transactional
www.arquitecturajava.com
Spring Boot JPA y su configuración
package com.arquitecturajava.jpa.repositories;
import org.springframework.data.repository.CrudRepository;
import com.arquitecturajava.jpa.models.Persona;
www.arquitecturajava.com
Spring Boot JPA y su configuración
Una vez realizados los cambios a nivel Spring Boot JPA lo último que queda es ver cuál es el
contenido del programa principal que invoca a este repositorio y nos selecciona los datos de
la base de datos.
www.arquitecturajava.com
Spring Boot JPA y su configuración
package com.arquitecturajava.jpa;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import com.arquitecturajava.jpa.repositories.PersonaRepository;
@SpringBootApplication
public class JpaApplication implements CommandLineRunner {
@Autowired
PersonaRepository repositorio;
@Override
public void run(String...args) throws Exception {
repositorio.findAll().forEach((p) - >
System.out.println(p.getNombre()));
}
}
www.arquitecturajava.com
Spring Boot JPA y su configuración
Los registros de la base de datos se imprimen en la consola . Finalmente hemos visto como
se configura JPA con Spring y como hacer uso de Spring Data . Accediendo a los datos de
forma rápida usando el interface CommandLineRunner
www.arquitecturajava.com