Fala ae rapaziada, tudo tranquilo?
É o seguinte, estou com uma dúvida/dificuldade em implementar um MER com JPA2. Quem puder me ajudar, pois já procurei bastante e não achei nenhuma dúvida/dificuldade igual a minha, eu agradeço e acho que poderá ser dúvida de outros também.
Tenho as Entidades chamadas Aposta e Jogada.
1º caso: O Jogador pode fazer várias apostas, mas a Aposta pertence a só um Apostador, ou seja, [Apostador]1->N[Apostas].
2º caso: Várias Apostas podem ser realizadas em uma Jogada, e apenas para aquela Jogada, consequentemente a Jogada possui N apostas, ou seja, um [Apostas]N->1[Jogada].
O problema ocorre no momento em que são criadas as tabelas do BD com a JPA.
No primeiro caso o mapeamento para a JPA foi numa boa, de acordo com minha MER, pois a Aposta pertence/possui um Apostador, então a tabela Aposta é criada com o ID de Apostador(apostador_id).
@Entity
@PrimaryKeyJoinColumn(name="pessoa_id")
public class Apostador extends Pessoa {
@Column(name="data_nascimento", nullable=false)
private Calendar dataNascimento;
@Column(length=1, nullable=false)
private char sexo;
// get e set
}
@Entity
public class Aposta {
@Id @GeneratedValue
private Long id;
@ManyToOne @JoinColumn(name="apostador_id", nullable=false)
private Apostador apostador;
// get e set
}
No segundo caso a JPA não cria as tabelas conforme minha Modelagem Relacional, onde a tabela Jogada possua o ID das Apostas (aposta_id), ela cria uma Nova Tabela chamada jogada_aposta contendo o ID da Jogada e o ID da Aposta.
@Entity
public class Jogada {
@Id @GeneratedValue
private Long id;
@OneToMany @Column(name="aposta_id")
private List<Aposta> listaAposta;
// get e set
}
Como eu poderia mapear minhas classes Aposta e Jogada afim de que o ID da Aposta seja registrado diretamente na tabela Jogada?
Espero ter conseguido passar minha dúvida/dificuldade.
Abraço e Sucesso…