1
resposta

Transição dos padrões de projeto para persistência

Tenho dúvida quanto a qual seria a melhor prática para persistir esse objeto Orçamento num banco de dados. Tomando o exemplo o Pattern State, a situação de um orçamento não é dado por um atributo primitivo mas por uma classe, que inclusive não possui atributos.

Quando mapeamos objetos com JPA costumamos(basicamente) pensar em classes como Documentos/Tabelas e atributos como campos no banco. Aplicando essa ideia básica, esse atributo Orçamento.situacao se desdobraria em um relacionamento com outras tabelas, uma solução bem estranha. Particularmente, eu mapearia o atributo Orçamento.situacao para um campo texto no banco preenchido com o nome da Classe.

Gostaria de saber como vcs tratariam esse caso?

Att.

1 resposta

Oi Leandro,

Boa pergunta! Realmente, se for pensar em persistência, utilizando a JPA, seria um problema mapear a situação em uma classe, conforme foi demonstrado na aula.

Nesse caso eu transformaria a classe SituaçãoOrcamento em um enum e cada classe filha seria uma constante dele. Dessa forma será mapeado uma coluna com o nome da constante na tabela de orçamento, além de também ser possível aplicar o pattern state com enum, pois podemos adicionar métodos abstratos nele sem problemas.

Bons estudos!