E ai galera beleza, eu estava fazendo uma atividade seguindo um diagrama de classe, porém me deparei com um problema na hora de fazer o mapeamento no hibernate:
A dúvida é: Qual a maneira correta de fazer o mapeamento entre a classe Cliente com as classes Reserva e Compra ? Sendo que cliente pode ser Cliente Fisico ou Cliente Juridico?
Ao meu ver a classe Usuário e Cliente utilizariam a anotação @MappedSuperclass
tipo:
@MappedSuperclass
public class Usuario implements Serializable{
...
}
@MappedSuperclass
public class Cliente extends Usuario{
...
}
@Entity
@Table(name="Cliente_Fisico", schema="atividade3")
public class ClienteFisico extends Cliente{
...
}
@Entity
@Table(name="Cliente_Juridico", schema="atividade3")
public class ClienteJuridico extends Cliente{
...
}
se eu fizer assim acredito que vai dar problema na criação das tabelas ou na hora de persistir os dados:
@Entity
@Table(name="Reserva", schema="atividade3")
public class Reserva implements Serializable{
@ManyToOne(cascade = CascadeType.ALL)
private Cliente cliente;
}
e a maneira que acho que funcionaria seria assim, porém aparentemente parece que é errado… não sei:
@Entity
@Table(name="Reserva", schema="atividade3")
public class Reserva implements Serializable{
@ManyToOne(cascade = CascadeType.ALL)
private ClienteFisico clienteFisico;
@ManyToOne(cascade = CascadeType.ALL)
private ClienteJuridico clienteJuridico;
}
Alguém ja passou por isso? espero que alguém consiga sanar as minhas dúvidas
Obrigado desde já