Poxa sei que tu tá fazendo de tudo ae pra me ajudar, mas não entendo pq não tá indo, não tá dando erro
Fiz até uma classe aparte para testar
private EntityManagerFactory factory;
private EntityManager manager;
public static void main(String[] args)
{
TesteClasse testeClasse = new TesteClasse();
PessoaFisica pessoaFisica = testeClasse.busca(2);
List<Dependente> lista = pessoaFisica.getDependentes();
Dependente dependente = lista.get(0);
// tá pegando e removendo certinho
pessoaFisica.getDependentes().remove(dependente);
testeClasse.alterarCadastro(pessoaFisica);
}
public PessoaFisica busca(Integer id)
{
factory = Persistence.createEntityManagerFactory("banco");
manager = factory.createEntityManager();
PessoaFisica pessoaFisica = manager.find(PessoaFisica.class, id);
return pessoaFisica;
}
public boolean alterarCadastro(PessoaFisica pessoaFisica)
{
factory = Persistence.createEntityManagerFactory("banco");
manager = factory.createEntityManager();
EntityTransaction tx = manager.getTransaction();
tx.begin();
try
{
pessoaFisica = manager.merge(pessoaFisica);
manager.persist(pessoaFisica);
manager.flush();
manager.clear();
tx.commit();
}
catch (RuntimeException e)
{
tx.rollback();
JOptionPane.showMessageDialog(null, e, "Erro!", 0);
manager.close();
factory.close();
return false;
}
manager.close();
factory.close();
return true;
}
@Entity
@Table(name = "dependentes")
public class Dependente
{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id_dependentes", nullable = false)
private Integer idDependentes;
@Column(nullable = false)
private String nome;
@ManyToOne
@JoinColumn(name = "id_pessoa_fis")
private PessoaFisica pessoaFisica;
// get e set
public boolean equals(Object obj){
if(obj != null && obj instanceof Dependente){
Dependente dep = (Dependente) obj;
return getIdDependentes()==dep.getIdDependentes();
}
return false;
}
public int hashCode(){
return Integer.valueOf(getIdDependentes()).hashCode()*31;
}
}
@Entity
@Table(name = "pessoa_fisica")
public class PessoaFisica
{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id_pessoa_fisica", nullable = false)
private Integer idPessoaFisica;
@Column(nullable = false)
private String nome;
@OneToMany(mappedBy="pessoaFisica", cascade = CascadeType.ALL, fetch=FetchType.EAGER)
private List<Dependente> dependentes;
// get e set
Na tabela
–pessoa_fisica–
id_pessoa_fisica pk
nome
–Dependente–
id_dependente pk
nome
id_pessoa_fis fk