Boa noite pessoal do guj.
Tenho a seguinte situação. Clientes 1 <------> * Telefones, no jpa 2 e MySql 5.
um determinado cliente já tem 3 telefones cadastrados
Se eu resolver atualizar este cliente com merge, retirando 2 telefones, esta alteração não teria que refletir no banco?
ou neste caso tenho que escluir separadamente.
alguém teria alguma sugestão.
public class Clientes implements Serializable {
//....
//Quando tento dar o merge no cliente com telefones a menos, os telefones excluídos não são retirados do banco
//Porém qualquer alteração feita em Clientes é efetuada com sucesso
//Quando dou o merge com telefones a mais também dá
@OneToMany(cascade = CascadeType.ALL, mappedBy = "clientes", fetch = FetchType.LAZY)
private List<TelefonesCliente> telefonesClienteList;
//....
}
//Método para alteração com generic
public Boolean edit(T entity) {
Boolean result = false;
javax.persistence.EntityManager em = getEntityManager();
try {
em.getTransaction().begin();
em.merge(entity);
//em.flush();
em.getTransaction().commit();
result = true;
} catch (Exception e) {
e.printStackTrace();
result = false;
} finally {
em.close();
}
return result;
}