From 7d5dea7d03e81b2a44b73a5dc4272543431eb46d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Cort=C3=A9s?= Date: Sat, 15 Jun 2019 00:30:32 -0400 Subject: [PATCH] Borrar personas con manytomnay relationships --- .../cliente/ClienteSearchController.java | 13 +++++++++++++ .../cliente/ClienteViewController.java | 2 +- .../DistribuidorSearchController.java | 14 ++++++++++++++ .../trabajador/TrabajadorSearchController.java | 14 ++++++++++++++ .../danielcortes/framework/BaseRepository.java | 16 ++++++++++++++++ 5 files changed, 58 insertions(+), 1 deletion(-) diff --git a/src/main/java/xyz/danielcortes/controllers/cliente/ClienteSearchController.java b/src/main/java/xyz/danielcortes/controllers/cliente/ClienteSearchController.java index ae8142b..fbaa440 100644 --- a/src/main/java/xyz/danielcortes/controllers/cliente/ClienteSearchController.java +++ b/src/main/java/xyz/danielcortes/controllers/cliente/ClienteSearchController.java @@ -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(); } diff --git a/src/main/java/xyz/danielcortes/controllers/cliente/ClienteViewController.java b/src/main/java/xyz/danielcortes/controllers/cliente/ClienteViewController.java index ba01e92..c9f2dfc 100644 --- a/src/main/java/xyz/danielcortes/controllers/cliente/ClienteViewController.java +++ b/src/main/java/xyz/danielcortes/controllers/cliente/ClienteViewController.java @@ -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()); } diff --git a/src/main/java/xyz/danielcortes/controllers/distribuidor/DistribuidorSearchController.java b/src/main/java/xyz/danielcortes/controllers/distribuidor/DistribuidorSearchController.java index a688cd9..e0105c7 100644 --- a/src/main/java/xyz/danielcortes/controllers/distribuidor/DistribuidorSearchController.java +++ b/src/main/java/xyz/danielcortes/controllers/distribuidor/DistribuidorSearchController.java @@ -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(); } diff --git a/src/main/java/xyz/danielcortes/controllers/trabajador/TrabajadorSearchController.java b/src/main/java/xyz/danielcortes/controllers/trabajador/TrabajadorSearchController.java index 81716ec..cbf3257 100644 --- a/src/main/java/xyz/danielcortes/controllers/trabajador/TrabajadorSearchController.java +++ b/src/main/java/xyz/danielcortes/controllers/trabajador/TrabajadorSearchController.java @@ -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(); } diff --git a/src/main/java/xyz/danielcortes/framework/BaseRepository.java b/src/main/java/xyz/danielcortes/framework/BaseRepository.java index 883a317..7219add 100644 --- a/src/main/java/xyz/danielcortes/framework/BaseRepository.java +++ b/src/main/java/xyz/danielcortes/framework/BaseRepository.java @@ -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 { this.em.getTransaction().commit(); } + + public void delete(List 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(); + } }