¿QUÉ ES SPRING DATA?
Spring Data es una biblioteca de Spring que facilita la interacción con bases de datos
mediante la creación automática de implementaciones de repositorios y el uso de
entidades para mapear datos de la base de datos en objetos Java.
COMPONENTES CLAVE
REPOSITORIO
En Spring Data, un repositorio es una interfaz que extiende una interfaz base (como
JpaRepository), y proporciona métodos para realizar operaciones CRUD (Crear, Leer,
Actualizar, Eliminar) en la base de datos.
Ejemplo:
• JpaRepository<Arma, Long>: Proporciona métodos como save, findById,
findAll, deleteById para la entidad Arma con una clave primaria de tipo Long.
• findByTipo(String tipo): Método personalizado para encontrar armas por tipo
(e.g., "Energía").
• findByDañoGreaterThan(int daño): Método personalizado para encontrar
armas con daño superior a un valor dado.
ENTIDAD
Una entidad en Spring Data representa una tabla en la base de datos. Cada campo
en la entidad corresponde a una columna en la tabla.
Ejemplo:
• @Entity: Anota la clase Arma como una entidad de base de datos.
• @Id: Indica el campo id como la clave primaria.
• @GeneratedValue(strategy = [Link]): Configura la
generación automática del valor id.
La tabla Arma en la base de datos podría tener datos como:
CONFIGURACIÓN
Configuras la conexión a la base de datos en el archivo [Link] o
[Link].
Ejemplo en [Link]:
• [Link]: URL de conexión a la base de datos.
• [Link]: Usuario para acceder a la base de datos.
• [Link]: Contraseña para el usuario.
• [Link]-auto: Configura el modo de gestión del esquema
(e.g., update para actualizar el esquema automáticamente).
CONSULTA DE DATOS
Puedes utilizar los métodos proporcionados por el repositorio para realizar consultas,
o definir consultas personalizadas utilizando JPQL (Java Persistence Query
Language).
EJEMPLO DE USO DEL REPOSITORIO :
• findByTipo("Energía"): Devuelve una lista de armas cuyo tipo es "Energía".
• findByDañoGreaterThan(35): Devuelve una lista de armas cuyo daño es
mayor a 35.
TRANSACCIONES
Spring Data maneja transacciones para asegurar la consistencia de los datos.
Puedes usar la anotación @Transactional para definir el ámbito de una transacción.
Ejemplo:
@Transactional: Garantiza que la operación de actualización sea atómica y
consistente.
RESUMEN
• Repositorio: Interfaz para operaciones CRUD y consultas personalizadas.
• Entidad: Clase que representa una tabla en la base de datos.
• Configuración: Parámetros de conexión a la base de datos.
• Consulta de Datos: Métodos del repositorio para buscar y filtrar datos.
• Transacciones: Manejo automático de transacciones para asegurar la
consistencia de los datos.