Olá pessoal!
Nem consegui pensar corretamente no título desse tópico para a minha dúvida. É o seguinte:
Estou desenvolvendo uma aplicação web em JSF (Mojarra), cuja especificação para persistência no banco é JPA (Hibernate). Tenho uma classe chamada PROJETO, que possui um List da classe DESPESA (@OneToMany anotado - Um projeto para Muitas despesas). Até então tudo estava funcionando lindamente bem, mas me dei conta que teria que criar um novo tipo de DESPESA, que possui atributos diferentes.
Quero dizer, agora vai existir também um tipo de despesa chamado DespesaComPessoal (inerente a despesas com mão de obra, que terá atributos BigDecimal como salário bruto, BigDecimal salário líquido, entre outros) cujos atributos não são nada relacionados a classe despesa anteriormente utilizado.
Qual a melhor solução para esse caso? Continuo usando a Despesa normalmente na List de despesas da classe Projeto, e somente adiciono os atributos novos, e quando não usar alguns deles coloco como null? Acho "medonha" essa abordagem pensando em OO.
Outra forma que pensei, seria criar a nova classe DespesaComPessoal mesmo, e mais uma List do tipo , mas seria estranho ter duas Lists parecidas na classe projeto.
Pensando que estou utilizando o JSF, e que o cliente setaria qual tipo de despesa ele deve escolher, qual a melhor solução?