--- marp: true theme: uncover paginate: false size: 16:9 backgroundColor: #0f172a color: #e5e7eb style: | section { font-size: 2em; } --- # Spring Data ### Capa de persistencia relacional

##### Daniel García Costa ###### 2026 --- ## ¿Que vamos a ver? - **Contexto y arquitectura del sistema** - **Modelo relacional vs modelo de dominio** - **Consultas en Spring Data** - Métodos de abstracción - JPQL - SQL nativo - **Proyecciones, agregados y rankings** - **Paginación y filtrado con `Pageable`** - **Optimizaciones** --- ## Contexto Simulación de un juego MMO (multijugador masivo en línea) multimundo. - **Servidor Master (coordinador)** - Recibe eventos de los Shard, consulta estados, jugadores, rankings, etc. - **Servidor Shard (mundo)** - Aloja jugadores - Contiene la dinámica del juego - Reenvía los eventos al Master --- ## Arquitectura - **Servidor Master** - Monolítico (un único servicio) - División lógica en controladores -> servicios -> repositorios - Solo recibe y agrega información - GUI de consulta - **Servidor Shard** - Dos servicios (Persistence + Core) - Gestiona los eventos de los jugadores - GUI para simular jugadores - Reenvío de eventos a Master --- ## ¿Por qué esta arquitectura? - Separación clara de responsabilidades - Escalado horizontal de shards - Aislamiento del dominio de juego - Centralización de analítica - Escenario realista para estudiar consultas ---