restricciones para eliminar

Representan EJB, que se utilizan para validar las operaciones tales como las eliminaciones.

MongoDB no soporta el concepto de integridad referencial, por lo cual recurrimos a Rules para implementar estas validaciones.

Se usaran en los Controller en el método delete.

Como implementarlo:

  • Buscar todos los @Referenced donde se haga uso de el.

  • Injectarlo y validar si no tiene registros mediante un count()

  • Retorna true si es posible eliminarlo, no tiene ninguna colección dependiente.

En este ejemplo:

No se puede eliminar un articulo , si existe en la coleccion Inventario o Facturadetalle u Ordendetalle.

// <editor-fold defaultstate="collapsed" desc="isDeleted(Articulo articulo)">
    public Boolean isDeleted(Articulo articulo) {
        Boolean found = false;
        try {
            Integer count;
            Document doc = new Document("articulo.idarticulo", articulo.getIdarticulo());
            count = facturadetalleRepository.count(doc);
            if (count > 0) {
                return false;
            }
            count = inventarioRepository.count(doc);
            if (count > 0) {
                return false;
            }
            count = ordendetalleRepository.count(doc);
            if (count > 0) {
                return false;
            }

        } catch (Exception e) {
            JsfUtil.errorMessage("isDeleted() " + e.getLocalizedMessage());
        }
        return true;
    }

Método delete

Validar que se pueda eliminar

if (!articuloServices.isDeleted(articulo)) {
JsfUtil.warningDialog("Delete", rf.getAppMessage("waring.integridadreferencialnopermitida"));
return "";
}

Last updated

Was this helpful?