| name | jpa-patterns |
| description | Patrones JPA/Hibernate para diseño de entidades, relaciones, optimización de consultas, transacciones, auditoría, indexación, paginación y pooling en Spring Boot. |
| origin | ECC |
Patrones JPA/Hibernate
Usar para modelado de datos, repositorios y ajuste de rendimiento en Spring Boot.
Cuándo Activar
- Diseñar entidades JPA y mapeos de tablas
- Definir relaciones (@OneToMany, @ManyToOne, @ManyToMany)
- Optimizar consultas (prevención de N+1, estrategias de fetch, proyecciones)
- Configurar transacciones, auditoría o soft deletes
- Configurar paginación, ordenamiento o métodos de repositorio personalizados
- Ajustar el connection pool (HikariCP) o caché de segundo nivel
Diseño de Entidades
@Entity
@Table(name = "markets", indexes = {
@Index(name = "idx_markets_slug", columnList = "slug", unique = true)
})
@EntityListeners(AuditingEntityListener.class)
public class MarketEntity {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false, length = 200)
private String name;
@Column(nullable = false, unique = true, length = 120)
private String slug;
@Enumerated(EnumType.STRING)
MarketStatus.ACTIVE;
Instant createdAt;
Instant updatedAt;
}