En algunas ocasiones necesitamos validar en base a dos campos secundarios para restringir la creacion y se cuenta con un campo autoincrementable.
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>
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>