Olá povo, estou muitíssimo injuriado com uma pequena briga com um relacionamento JPA.
Vou explicar primeiro a necessidade depois expor os meus códigos, onde gostaria de ajuda:
Tenho 3 entidades: DOADOR, RECEPTOR e ATENDIMENTO.
é um software para um hemocentro, sendo assim, para que haja um ATENDIMENTO, ou seja o que equivale a uma doação, preciso de um ou mais doadores e um ou mais receptores.
Pois bem, o atendimento, tinha criado assim:
[code]@Entity
@Table(name = “atendimento”)
public class Atendimento implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ATENDIMENTO_ID")
private Long id;
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinTable(name = "receptor_atendimento_doador", joinColumns = { @JoinColumn(name = "ATENDIMENTO_ID") }, inverseJoinColumns = { @JoinColumn(name = "DOADOR_ID") })
private List<Doador> doadores = new ArrayList<Doador>();
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinTable(name = "receptor_atendimento_doador", joinColumns = { @JoinColumn(name = "ATENDIMENTO_ID") }, inverseJoinColumns = { @JoinColumn(name = "RECEPTOR_ID") })
private List<Receptor> receptores = new ArrayList<Receptor>();L, fetch = FetchType.LAZY)
@JoinTable(name = "receptor_atendimento_doador", joinColumns = { @JoinColumn(name = "ATENDIMENTO_ID") }, inverseJoinColumns = { @JoinColumn(name = "RECEPTOR_ID") })
private List<Receptor> receptores = new ArrayList<Receptor>();
[/code]
O doador assim:
@Entity
@Table(name = "doador")
public class Doador implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "DOADOR_ID")
private Long id;
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinTable(name = "receptor_atendimento_doador",
joinColumns = { @JoinColumn(name = "DOADOR_ID") },
inverseJoinColumns = { @JoinColumn(name = "ATENDIMENTO_ID") })
private List<Atendimento> atendimentos;
E o receptor assim:
@Entity
@Table(name = "receptor")
public class Receptor implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "RECEPTOR_ID")
private Long id;
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinTable(name = "receptor_atendimento_doador", joinColumns = { @JoinColumn(name = "RECEPTOR_ID") }, inverseJoinColumns = { @JoinColumn(name = "ATENDIMENTO_ID") })
private List<Atendimento> atendimentos;
Omiti os outros valores, exibindo apenas os relacionamentos aqui.
Mas o problema é que não são criadas chaves estrangeiras, ou mesmo é persistido o atendimento…
Porquê? Me digam o que estou errando, como devo consertar? Alguém que já passou o mesmo problema pode dar uma luz?

