Mapeamento
Declarar uma entidade que sobreviva à produção, e não apenas ao primeiro teste.
Mapeamento de entidades
Declarar uma entidade JPA leva três anotações. Declarar uma entidade que não vai dar problema daqui a dois anos exige uma dezena de decisões, e quatro delas são irreversíveis depois que há dados no banco.
A mais cara dessas decisões diz respeito às enumerações. A configuração padrão do JPA armazena uma enumeração como um inteiro posicional: EN_ATTENTE vira 0, PAYEE vira 1. No dia em que um desenvolvedor insere um valor no meio da lista — algo que qualquer linguagem de programação permite sem consequências — todas as linhas já gravadas mudam de significado. Os pedidos pagos viram pedidos cancelados. Não há mensagem de erro, nem exceção: apenas dados que deixam de significar o que significavam.
A segunda decisão cara é a da chave primária, porque ela determina se as escritas podem ser agrupadas em lotes. A terceira é a escolha entre um campo simples e um tipo valor compartilhado. A quarta é a estratégia de herança, que define o formato das tabelas e, portanto, o custo de todas as leituras futuras.
Esta lição percorre essas escolhas mostrando, a cada vez, o DDL PostgreSQL produzido. É a única maneira de verificar que uma anotação faz mesmo o que se imagina.
Comentários
Os comentários são alimentados pelo GitHub Discussions
Conecte-se com o GitHub para participar da discussão