Directorio de artículos
Este capítulo incluye:
- Utilice la plantilla JdbcTemplate de spring;
- Use SimpleJdbcTemplate para insertar datos;
- Declarar repositorios JPA con datos de primavera.
2. Datos de primavera
El proyecto Spring Data incluye los siguientes proyectos:
- datos de primavera JPA, esto es para la base de datos relacional;
- datos de primavera MongoDB, esto es para la base de datos de documentos Mongo;
- datos de primavera Neo4j, esto es para la base de datos de gráficos Neo4j;
- datos de primavera Cassandra, esto es para la base de datos Cassandra.
2.1 Agregar datos de primavera JPA al proyecto
Agregue las siguientes dependencias:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
El valor predeterminado es Hibernate. Si necesita cambiar a otras implementaciones, puede hacer lo siguiente:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<exclusions>
<exclusion>
<artifactId>hibernate-entitymanager</artifactId>
<groupId>org.hibernate</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
<version>2.5.2</version>
</dependency>
2.2 Declaración de entidades
package tacos;
import javax.persistence.Entity;
import javax.persistence.Id;
import lombok.AccessLevel;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.RequiredArgsConstructor;
@Data
@RequiredArgsConstructor
@NoArgsConstructor(access=AccessLevel.PRIVATE, force=true)
@Entity
public class Ingredient {
@Id
private final String id;
private final String name;
private final Type type;
public static enum Type {
WRAP, PROTEIN, VEGGIES, CHEESE, SAUCE
}
}
Agregue @Entity y @Id.
Anotación @NoArgsConstructor, JPA requiere un constructor sin parámetros, ya que no desea utilizar el método secundario, por lo que debe establecerse en privado.
2.3 Declarar repositorios JPA
Simplemente herede CrudRepository.
package tacos.data;
import org.springframework.data.repository.CrudRepository;
import tacos.Ingredient;
public interface IngredientRepository extends CrudRepository<Ingredient, String> {
}
2.4 repositorios JPA personalizados
Ejemplos:
List<Order> findByDeliveryZip(String deliveryZip);
Spring Data utiliza un mecanismo de lenguaje específico de dominio (DSL) para resolver las firmas de métodos.
List<Order> readOrdersByDeliveryZipAndPlacedAtBetween(
String deliveryZip, Date startDate, Date endDate);
También están los siguientes ejemplos:
complex puede usar @Query:
@Query("Order o where o.deliveryCity='Seattle'")
List<Order> readOrdersDeliveredInSeattle();