0%
Mapeamento de entidades

Mapeamento

Declarar uma entidade que sobreviva à produção, e não apenas ao primeiro teste.

15-20 min

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

Link copiado!