Dos campos como campo llave

En algunas ocasiones necesitamos validar en base a dos campos secundarios para restringir la creacion y se cuenta con un campo autoincrementable.

En el list

En el método isNew()

Solo se valida si esta vacio.

 @Override
    public String isNew() {
        try {
            writable = true;
            if (JsfUtil.isVacio(modelo.getDescripcion())) {
                writable = false;
                return "";
            }
            String idsecond = modelo.getDescripcion();
            modelo = new Modelo();
            modelo.setDescripcion(idsecond);
            modeloSelected = new Modelo();

        } catch (Exception e) {
            JsfUtil.errorMessage("isNew()" + e.getLocalizedMessage());
        }
        return "";
    }// </editor-fold>

En el mètodo save()

Verificar por los dos atributos secundarios.

@Override
    public String save() {
        try {

            Document doc = new Document("descripcion", modelo.getDescripcion()).append("grupoarticulo.idgrupoarticulo", modelo.getGrupoarticulo().getIdgrupoarticulo());
            List<Modelo> list = modeloRepository.findBy(doc);

            if (!list.isEmpty()) {
                writable = false;

                JsfUtil.warningMessage(rf.getAppMessage("warning.idexist"));
                return "";
            }

            Integer identity = autoincrementableStoreejbServices.getContador("modelo");
            modelo.setIdmodelo(identity);

            //Lo datos del usuario
            modelo.setUserInfo(userInfoServices.generateListUserinfo(loginController.getUsername(), "create"));
            if (modeloRepository.save(modelo)) {
                revisionHistoryStoreejbRepository.save(revisionHistoryServices.getRevisionHistory(modelo.getIdmodelo().toString(), loginController.getUsername(),
                        "create", "modelo", modeloRepository.toDocument(modelo).toString()));

                JsfUtil.successMessage(rf.getAppMessage("info.save"));
                reset();
            } else {
                JsfUtil.successMessage("save() " + modeloRepository.getException().toString());
            }

        } catch (Exception e) {
            JsfUtil.errorMessage("save()" + e.getLocalizedMessage());
        }
        return "";
    }// </editor-fold>

Nota:

ver ModeloController.java

Last updated