Borrar personas con manytomnay relationships

This commit is contained in:
Daniel Cortés
2019-06-15 00:30:32 -04:00
parent acc9ae66ae
commit 7d5dea7d03
5 changed files with 58 additions and 1 deletions

View File

@@ -9,6 +9,9 @@ import xyz.danielcortes.framework.BaseTableModel;
import xyz.danielcortes.framework.PanelName;
import xyz.danielcortes.models.Cliente;
import xyz.danielcortes.repository.ClienteRespository;
import xyz.danielcortes.repository.CorreoRepository;
import xyz.danielcortes.repository.DireccionRepository;
import xyz.danielcortes.repository.TelefonoRepository;
import xyz.danielcortes.validator.ClienteValidator;
import xyz.danielcortes.views.cliente.ClienteSearchPanel;
@@ -17,12 +20,19 @@ public class ClienteSearchController extends BaseController {
private ClienteSearchPanel view;
private ClienteRespository clienteRespository;
private ClienteValidator clienteValidator;
private CorreoRepository correoRepository;
private DireccionRepository direccionRepository;
private TelefonoRepository telefonoRepository;
public ClienteSearchController(ClienteSearchPanel view, LaunchController parent) {
super(parent);
this.view = view;
this.clienteRespository = new ClienteRespository();
this.clienteValidator = new ClienteValidator(this.clienteRespository);
this.correoRepository = new CorreoRepository();
this.direccionRepository = new DireccionRepository();
this.telefonoRepository = new TelefonoRepository();
this.setupListeners();
}
@@ -70,6 +80,9 @@ public class ClienteSearchController extends BaseController {
if (option == JOptionPane.NO_OPTION)
return;
this.correoRepository.delete(cliente.getCorreos());
this.direccionRepository.delete(cliente.getDirecciones());
this.telefonoRepository.delete(cliente.getTelefonos());
this.clienteRespository.delete(cliente);
this.reload();
}

View File

@@ -34,7 +34,7 @@ public class ClienteViewController extends BaseController {
private void setupListeners() {
this.view.getVolverButton().addActionListener(e -> this.getParentController().showCard(PanelName.CLIENTE_SEARCH));
this.view.getCorreosButton().addActionListener(e -> this.gotoCorreosView());
// this.view.getTelefonosButton().addActionListener(e -> this.gotoTelefonoView());
this.view.getTelefonosButton().addActionListener(e -> this.gotoTelefonoView());
this.view.getDireccionesButton().addActionListener(e -> this.gotoDireccionView());
}

View File

@@ -8,7 +8,10 @@ import xyz.danielcortes.framework.BasePanel;
import xyz.danielcortes.framework.BaseTableModel;
import xyz.danielcortes.framework.PanelName;
import xyz.danielcortes.models.Distribuidor;
import xyz.danielcortes.repository.CorreoRepository;
import xyz.danielcortes.repository.DireccionRepository;
import xyz.danielcortes.repository.DistribuidorRepository;
import xyz.danielcortes.repository.TelefonoRepository;
import xyz.danielcortes.validator.DistribuidorValidator;
import xyz.danielcortes.views.distribuidor.DistribuidorSearchPanel;
@@ -18,11 +21,19 @@ public class DistribuidorSearchController extends BaseController {
private DistribuidorRepository distribuidorRepository;
private DistribuidorValidator distribuidorValidator;
private CorreoRepository correoRepository;
private DireccionRepository direccionRepository;
private TelefonoRepository telefonoRepository;
public DistribuidorSearchController(DistribuidorSearchPanel view, LaunchController parent) {
super(parent);
this.view = view;
this.distribuidorRepository = new DistribuidorRepository();
this.distribuidorValidator = new DistribuidorValidator(this.distribuidorRepository);
this.telefonoRepository = new TelefonoRepository();
this.direccionRepository = new DireccionRepository();
this.correoRepository = new CorreoRepository();
this.setupListeners();
}
@@ -70,6 +81,9 @@ public class DistribuidorSearchController extends BaseController {
if (option == JOptionPane.NO_OPTION)
return;
this.correoRepository.delete(distribuidor.getCorreos());
this.direccionRepository.delete(distribuidor.getDirecciones());
this.telefonoRepository.delete(distribuidor.getTelefonos());
this.distribuidorRepository.delete(distribuidor);
this.reload();
}

View File

@@ -8,6 +8,9 @@ import xyz.danielcortes.framework.BasePanel;
import xyz.danielcortes.framework.BaseTableModel;
import xyz.danielcortes.framework.PanelName;
import xyz.danielcortes.models.Trabajador;
import xyz.danielcortes.repository.CorreoRepository;
import xyz.danielcortes.repository.DireccionRepository;
import xyz.danielcortes.repository.TelefonoRepository;
import xyz.danielcortes.repository.TrabajadorRespository;
import xyz.danielcortes.repository.UsuarioRepository;
import xyz.danielcortes.validator.TrabajadorValidator;
@@ -22,6 +25,10 @@ public class TrabajadorSearchController extends BaseController {
private TrabajadorValidator trabajadorValidator;
private UsuarioValidator usuarioValidator;
private CorreoRepository correoRepository;
private TelefonoRepository telefonoRepository;
private DireccionRepository direccionRepository;
public TrabajadorSearchController(TrabajadorSearchPanel view, LaunchController parent) {
super(parent);
this.view = view;
@@ -29,6 +36,10 @@ public class TrabajadorSearchController extends BaseController {
this.usuarioRepository = new UsuarioRepository();
this.trabajadorValidator = new TrabajadorValidator(this.trabajadorRespository);
this.usuarioValidator = new UsuarioValidator(this.usuarioRepository);
this.correoRepository = new CorreoRepository();
this.telefonoRepository = new TelefonoRepository();
this.direccionRepository = new DireccionRepository();
this.setupListeners();
}
@@ -76,6 +87,9 @@ public class TrabajadorSearchController extends BaseController {
if (option == JOptionPane.NO_OPTION)
return;
this.direccionRepository.delete(trabajador.getDirecciones());
this.telefonoRepository.delete(trabajador.getTelefonos());
this.correoRepository.delete(trabajador.getCorreos());
this.trabajadorRespository.delete(trabajador);
this.reload();
}

View File

@@ -1,5 +1,6 @@
package xyz.danielcortes.framework;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceException;
@@ -49,4 +50,19 @@ public abstract class BaseRepository<E> {
this.em.getTransaction().commit();
}
public void delete(List<E> entities) {
this.em.getTransaction().begin();
try {
for (E e : entities) {
this.em.remove(e);
}
} catch (PersistenceException e) {
e.printStackTrace();
this.em.getTransaction().rollback();
}
this.em.getTransaction().commit();
}
}