Boa tarde Galera…
Seguinte to com um probleminha aqui com um relacionamento OneToMany Unidirecional
O problema é o seguinte
Tenho a Classe pessoa
public class Pessoa implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@SequenceGenerator(name="genPessoa", sequenceName="genPessoa", initialValue=1)
@GeneratedValue(generator="genPessoa", strategy=GenerationType.AUTO)
private Integer cod;
private String nome;
private String telefone;
private String celular;
private String fax;
private Boolean rural;
private String email;
private Boolean fornecedor;
private Boolean cliente;
@OneToMany(cascade=CascadeType.ALL)
@Cascade(org.hibernate.annotations.CascadeType.DELETE_ORPHAN)
@JoinColumn(name="pessoaCod_fk")
private List<Endereco> enderecos;
E a Classe Endereco
public class Endereco implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@SequenceGenerator(name="genEndereco", sequenceName="genEndereco", initialValue=1)
@GeneratedValue(generator="genEndereco", strategy=GenerationType.AUTO)
private Integer cod;
private String endereco;
private String numero;
private String complemento;
private String cep;
private String bairro;
@ManyToOne
@JoinColumn(name="cidadeCod_fk")
private Municipio cidade;
@Column(name="tipoEndereco")
@Enumerated(EnumType.STRING)
private EnderecoType tipoEndereco;
O problema vem na hora de deletar um Endereço visto que dentro de pessoa possui uma lista de endereços.
Exemplo
Tenho a PessoaX que tem Dois enderecos Endereco_Entrega e Endereco_Cobranca
Dai preciso deletar o Endereco_Cobranca ai faço o seginte
pessoa.getEndereos().remove(0);
E mando dar um update em Pessoa. Aique o hibernate pira heheh
Ao inves de deletar o endereco do banco ele faz um update em endereço removendo o id da pessoa da tabela.
O registro não aparece mais na tela nem nas buscas porém fica um registro perdido dentro do banco.
Alguém ja passou por isso ou tem alguma ideia de como resolver isto