Boa tarde Pessoal!
public class Pessoa implements Serializable {
@OneToMany(cascade = CascadeType.ALL, mappedBy = "idPessoa", fetch=FetchType.LAZY)
private List<PessoaFone> pessoaFoneList;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "idPessoa", fetch=FetchType.LAZY)
private List<PessoaEndereco> pessoaEnderecoList;
}
public class PessoaFone implements Serializable {
@JoinColumn(name = "ID_PESSOA", referencedColumnName = "ID_PESSOA", nullable = false)
@ManyToOne(optional = false)
private Pessoa idPessoa;
}
Para ilistrar, no CRUD Pessoa, eu també ja faço as operações dos Fones, setando a lista de telefones no beans Pessoa antes do save.
As operações de inclusão e alteração dos Fones em Pessoa estão funcionando, porém a exclusão de um fone (ex.: A Pessoa 1 tem 3 telefones, e tento excluir um telefone, setando a nova lista com 2 telefones para o bean Pessoa e “salvando” a Pessoa) não funciona, nem sequer dá erro.
Toda manutenção de telefones é feita em um list local, e só depois setado em Pessoa
No meu controller fica:
private List<PessoaFone> foneList = new ArrayList<PessoaFone>();
private Pessoa pessoa;
public void updatePessoa() {
pessoa.setPessoaFoneList(foneList);
pessoaService.save(pessoa);
recreateModel();
}
Lembrando: Em caso de alteração ou inclusão de um novo telefone, funciona normalmente.