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.