Mapeo
Declarar una entidad que sobrevivirá en producción, no solo al primer test.
Mapeo de entidades
Declarar una entidad JPA lleva tres anotaciones. Declarar una entidad que no dará problemas dentro de dos años exige una decena de decisiones, de las cuales cuatro son irreversibles una vez que hay datos en base.
La más costosa de esas decisiones concierne a las enumeraciones. El ajuste por defecto de JPA almacena una enumeración como entero posicional: EN_ATTENTE se convierte en 0, PAYEE en 1. El día en que un desarrollador inserta un valor en medio de la lista —lo que cualquier lenguaje de programación permite sin consecuencia— todas las filas ya escritas cambian de sentido. Los pedidos pagados se convierten en pedidos cancelados. No hay ningún mensaje de error, ninguna excepción: solo datos que ya no significan lo que decían.
La segunda decisión costosa es la de la clave primaria, porque determina si las escrituras pueden agruparse en lotes. La tercera es la elección entre un campo simple y un tipo valor compartido. La cuarta es la estrategia de herencia, que fija la forma de las tablas y por tanto el coste de todas las lecturas futuras.
Esta lección recorre esas elecciones mostrando, cada vez, el DDL PostgreSQL producido. Es la única forma de verificar que una anotación hace realmente lo que se cree.
Comentarios
Los comentarios funcionan con GitHub Discussions
Inicia sesión con GitHub para participar en la discusión