Daniel Garcia Costa 1 месяц назад
Родитель
Сommit
7de70702e4
2 измененных файлов с 91 добавлено и 12 удалено
  1. 91 12
      Slides/SeminarioSpringData_2026.md
  2. BIN
      Slides/SeminarioSpringData_2026.pdf

+ 91 - 12
Slides/SeminarioSpringData_2026.md

@@ -33,6 +33,15 @@ style: |
     line-height: 1.5;
   }
 
+  .box-supercompact{
+    font-size: 65% !important;
+    line-height: 1.2;
+  }
+
+  .left{
+    text-align: left;
+  }
+
   .columns {
     display: flex;
     gap: 1em;
@@ -233,10 +242,90 @@ Una entidad define:
 
 <br>
 <div class="box w-70 center">
-<strong>La base de datos queda detrás de ese contrato</strong>.
+  <strong>La base de datos queda detrás de ese contrato</strong>.
 </div>
 <br>
-*Usamos anotaciones para definir las propiedades y relaciones de nuestras entidades. Pej. @Entity, @Table, @Id, @Column, ...*
+
+*Usamos anotaciones para definir las propiedades y relaciones de nuestras entidades*
+
+---
+
+<div class="box-supercompact left">
+
+| Categoría | Anotación | Para qué sirve |
+|---------|----------|---------------|
+| Entidad | `@Entity` | Marca la clase como entidad persistente |
+|  | `@Table` | Define la tabla asociada |
+| Identidad | `@Id` | Define la clave primaria |
+|  | `@GeneratedValue` | Estrategia de generación del ID |
+| Columnas | `@Column` | Configura nombre, nulabilidad, longitud |
+|  | `@Basic` | Atributo persistente simple |
+| Relaciones | `@ManyToOne` | Relación muchos‑a‑uno |
+|  | `@OneToMany` | Relación uno‑a‑muchos |
+|  | `@OneToOne` | Relación uno‑a‑uno |
+|  | `@ManyToMany` | Relación muchos‑a‑muchos |
+| Relaciones | `@JoinColumn` | Define la columna FK |
+|  | `@JoinTable` | Tabla intermedia |
+| Carga | `fetch = LAZY / EAGER` | Controla cuándo se cargan relaciones |
+| Ciclo de vida | `@PrePersist` | Callback antes de insertar |
+|  | `@PreUpdate` | Callback antes de actualizar |
+| Temporal | `@Temporal` | Mapea fechas a tipos SQL |
+| Herencia | `@Inheritance` | Estrategia de herencia |
+| Control ORM | `@Transient` | Campo no persistente |
+
+</div>
+
+---
+
+## Anotaciones de control (Spring Data / JPA)
+
+<div class="left">
+
+| Categoría | Anotación | Para qué sirve |
+|---------|----------|---------------|
+| Transacciones | `@Transactional` | Delimita una transacción |
+|  | `@Modifying` | Indica que una query modifica datos (DML) |
+| Ciclo de vida | `@PrePersist` | Antes de insertar |
+|  | `@PostPersist` | Después de insertar |
+|  | `@PreUpdate` | Antes de actualizar |
+|  | `@PostUpdate` | Después de actualizar |
+|  | `@PreRemove` | Antes de borrar |
+|  | `@PostRemove` | Después de borrar |
+
+</div>
+
+
+---
+
+## Inicialización del esquema (DDL)
+
+<div class="left">
+
+| Opción | Comportamiento |
+|------|---------------|
+| `none` | No hace nada con el esquema |
+| `validate` | Verifica que el esquema exista |
+| `update` | Sincroniza cambios automáticamente |
+| `create` | Borra y crea el esquema |
+| `create-drop` | Crea al arrancar, borra al parar |
+
+</div>
+
+---
+
+## Impacto real del DDL automático
+<br>
+<br>
+
+- Útil en desarrollo
+- Peligroso en producción
+- No sustituye migraciones
+- Puede generar cambios costosos
+
+<br>
+<br>
+
+**Decisión de arquitectura, no de código**
 
 ---
 
@@ -399,16 +488,6 @@ El rendimiento depende más de la query que del lenguaje.
 
 ---
 
-## Anotaciones de control
-
-- @Transactional -> Control de transacciones
-- @Modifying -> Obligatorio para ejecutar `INSERT` y `UPDATE` en DML
-- @PrePersist,  @PostPersist,  @PreUpdate,  @PostUpdate
-- @Transcient -> No persiste el atributo (dominio)
-
-
----
-
 ## Algunas técnicas para reducir coste
 <div class="box-compact">
 

BIN
Slides/SeminarioSpringData_2026.pdf