Creación del proyecto con Spring Boot
Primero, necesitamos crear un proyecto Spring Boot con JPA y H2 usando https://start.spring.io/. Lo generamos y lo importamos en nuestro Eclipse.
Entidad MyTable
Necesitaremos una entidad que tenga como propiedades los mismos campos que la tabla en la base de datos. Anotamos debidamente la entidad con las anotaciones de JPA.
MyTable.java
package com.luisgomezcaballero.springjpademo; import java.util.Date; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @Entity public class MyTable { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long myId; private String myString; private Date myDate; private Float myFloat; public MyTable() { } public MyTable(Long myId, String myString, Date myDate, Float myFloat) { super(); this.myId = myId; this.myString = myString; this.myDate = myDate; this.myFloat = myFloat; } public Long getMyId() { return myId; } public void setMyId(Long myId) { this.myId = myId; } public String getMyString() { return myString; } public void setMyString(String myString) { this.myString = myString; } public Date getMyDate() { return myDate; } public void setMyDate(Date myDate) { this.myDate = myDate; } public Float getMyFloat() { return myFloat; } public void setMyFloat(Float myFloat) { this.myFloat = myFloat; } @Override public String toString() { return "MyTable [myId=" + myId + ", myString=" + myString + ", myDate=" + myDate + ", myFloat=" + myFloat + "]"; } }
Repositorio MyTable
Ahora creamos un repositorio personalizado extendiendo el de Spring. En este caso no estamos creando nuevos métodos pero podríamos hacerlo en el caso de que necesitáramos consultas específicas.
MyTableRepository.java
package com.luisgomezcaballero.springjpademo; import org.springframework.data.repository.CrudRepository; public interface MyTableRepository extends CrudRepository<MyTable, Long> { }
Ejemplo
Creamos un método demo que se ejecutará al iniciar la aplicación y que generará registros en la tabla de la base de datos virtual H2 y después hará comnsultas sobre los mismos.
SpringJpaDemoApplication.java
package com.luisgomezcaballero.springjpademo; import java.util.Date; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; @SpringBootApplication public class SpringJpaDemoApplication { public static void main(String[] args) { SpringApplication.run(SpringJpaDemoApplication.class, args); } @Bean public CommandLineRunner demo(MyTableRepository repository) { return (args) -> { repository.save(new MyTable((long) 1, "myString1", new Date(), (float) 1)); repository.save(new MyTable((long) 2, "myString2", new Date(), (float) 2)); System.out.println("findAll():"); for (MyTable myTable : repository.findAll()) { System.out.println(myTable.toString()); } System.out.println(); MyTable myTable = repository.findOne(1L); System.out.println("findOne(1L):"); System.out.println(myTable.toString()); System.out.println(); }; } }
Repositorio
El código de este proyecto está disponible en https://github.com/luisgomezcaballero/spring-jpa-demo.
So, what do you think ?