Olá, pessoal, estou com uma dúvida que está cruel pra mim…
é o seguinte:
Tenho uma entidade Atendimento.
Para cada atendimento, posso ter uma lista de doadores e receptores, ambas podem ter um ou mais, obviamente.
Em uma das versões deste código não tive sucesso em listar de modo organizado as informações, onde quando usava um tipo de inner join através de SQL Puro conseguia obter os valores.
Então um colega sugeriu que usasse uma única tabela para persistir o ID dos elementos que compunham o relacionamento, então assim fiz. Porém agora de modo algum consigo persistir o Atendimento, diz sempre que o id de um dos campos não tem um valor default.
Eis meu código:
Esta entidade é o Atendimento, onde preciso das listas…
@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>();
Este é o doador
@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 este é o receptor:
@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;
Se estou errando, por favor, digam onde.
Gostaria de persistir os dados de Doador e Receptor indistintamente e no momento de cadastrar o Atendimento, obter os doadores e receptores e assim salvá-los em conjunto.
Após isso, a listagem ter os valores correspondentes ao Atendimento/Doador e Receptor.
Obrigado a todos que puderem ajudar.