>_fieldnotes.
GUÍA DE BOLSILLO/SQL, ORM Y MIGRACIONES
Ctrl K
FIELDNOTES/DATA/SQL, ORM Y MIGRACIONES

DATA · REFERENCIA RÁPIDA

SQL, ORM y migraciones

Relaciona SQL con JPA e Hibernate, y reconoce transacciones, N+1 y migraciones.

SQLPostgreSQLMySQLJPAHibernateFlyway

SQL primero

Una clave primaria identifica una fila; una clave foránea conecta tablas; un índice acelera ciertas lecturas con coste de espacio y escritura. PostgreSQL y MySQL son motores relacionales habituales. Confirma motor, versión y esquema en el repositorio.

El ORM genera SQL, pero no elimina la necesidad de entender consultas y relaciones.

JPA e Hibernate

JPA (Jakarta Persistence en generaciones recientes) define una API y anotaciones para persistencia Java. Hibernate es una implementación común de esa API.

  • @Entity mapea una clase a una entidad persistente.
  • @Id indica el identificador.
  • Las anotaciones de relación describen asociaciones entre entidades.
  • JpaRepository proporciona operaciones frecuentes.

Los paquetes javax.persistence y jakarta.persistence ayudan a reconocer generaciones. No mezcles dependencias manualmente.

Transacciones, carga diferida y N+1

  • Transacción: grupo coherente de cambios que se confirma o revierte. Revisa el alcance de @Transactional.
  • Lazy loading: una relación se carga al acceder a ella; hacerlo fuera de la sesión puede fallar o generar consultas adicionales.
  • N+1: se obtiene una lista de N filas y después se ejecuta otra consulta por cada relación. Inspecciona el SQL para detectarlo.
  • DTO: controla qué datos entran y salen de la API. Serializar entidades directamente puede exponer datos o crear ciclos.

Migraciones de esquema

Flyway y Liquibase versionan cambios reproducibles de esquema. Busca db/migration o los changelogs. Para un cambio ya aplicado en un entorno compartido, agrega una migración nueva siguiendo la convención del equipo.

Conexión y secretos

La URL, el usuario y la contraseña suelen llegar mediante configuración de perfil, variables de entorno o un gestor de secretos. No subas credenciales al repositorio. Confirma SSL, permisos y red antes de conectar a una base compartida.