Olá pessoal,
Estou com uma duvida para fazer o mapeamento JPA do seguinte relacionamento

“Pode existir Assinantes e pode existir Promotor, um Promotor é um Assinante com mais atributos”
Os códigos abaixo são as classes que eu consegui mapear até agora…
Minha duvida é em relação à como a PFK de Promotor irá se comportar no código…
Por que a maioria dos exemplos que eu vi em pesquisas, a classe mãe é abstract, mas neste caso eu não posso deixar minha classe Assinante como abstract, pois eu posso ter um objeto Assinante só em alguns casos que vou ter criar objetos Promotor…
Então pensei em deixar no construtor de Promotor informando somente o assinanteId (através de um super), mas estou com duvida… não seria melhor colocar um objeto Assinante dentro de Promotor ?
Qual seria a melhor saida para esse tipo de relacionamento… ahh se tiver errado o relacionamento podem canetar tbm…
Outra duvida que acabou de surgir é em relação as Daos, será necessário 2 Daos ? Uma para Assinante e uma para Promotor? Ou como há herança pode ser feito uma DAO só para as duas classes ?
@Entity
@Inheritance(strategy=InheritanceType.JOINED)
@Table(name = "assinante")
public class Assinante implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "assinante_id")
private Long assinanteId;
}
@Entity
@Table(name = "promotor")
public class Promotor extends Assinante implements Serializable {
private static final long serialVersionUID = 1L;
@Basic(optional = false)
@Column(name = "promotor_telefone")
private String promotorTelefone;
@Basic(optional = false)
@Column(name = "promotor_celular")
private String promotorCelular;
@Basic(optional = false)
@Column(name = "promotor_cpf_cnpj")
private String promotorCpfCnpj;
public Promotor() {
}
public Promotor(Long assinanteId) {
super.setAssinanteId(assinanteId);
}
}
