findPagination()que funciona como un findAll() con paginación se usa en formularios maestros.
findFilterPagination()se usa con formularios de tipo detalle en una relación maestro-detalle. Ya que debemos incluir un filtro que incluya los otros atributos. También lo usamos para filtrar campos.
Filtra entre fechas
Se verifica los valores del parámetrosearchentity:
_init
_autocomplete
nombrecampos
Métodos
findPagination()
findFilterPagination()
FindRegexPagination()
Hace al desplazamiento y retorna los documentos correspondientes a la página especificada.
Ejemplo move() simple:
@Override
public void move() {
try {
Document doc;
switch (loginController.get("searchrol")) {
case "_init":
rolList = rolRepository.findPagination(page, rowPage);
break;
case "_autocomplete":
//no se realiza ninguna accion
break;
case "idrol":
doc = new Document("idrol", rol.getIdrol());
rolList = rolRepository.findFilterPagination(doc, page, rowPage, new Document("idrol", -1));
break;
default:
rolList = rolRepository.findPagination(page, rowPage);
break;
}
rolFiltered = rolList;
rolDataModel = new RolDataModel(rolList);
} catch (Exception e) {
JsfUtil.errorMessage("move() " + e.getLocalizedMessage());
}
}
Ejemplo move() Relacionado
@Override
public void move() {
try {
Document doc;
switch (loginController.get("searchusuario")) {
case "_init":
usuarioList = usuarioRepository.findPagination(page, rowPage);
break;
case "_autocomplete":
//no se realiza ninguna accion
break;
case "username":
doc = new Document("username", usuario.getUsername());
usuarioList = usuarioRepository.findFilterPagination(doc, page, rowPage, new Document("username", -1));
break;
default:
usuarioList = usuarioRepository.findPagination(page, rowPage);
break;
}
usuarioFiltered = usuarioList;
usuarioDataModel = new UsuarioDataModel(usuarioList);
} catch (Exception e) {
JsfUtil.errorMessage("move() " + e.getLocalizedMessage());
}
}
Ejemplo move() con filtros Maestro-detalle
El campo @Id es un autoincrementable que se genera automaticò
Depende de una clase Maestro.
Por ejemplo mostrar los permisos filtradas por el agente.
utilizar findFilterPagination()
Filtrar entre fechas.
@Override
public void move() {
try {
Document doc;
switch (loginController.get("searchpermiso")) {
case "_init":
permisoList = permisoRepository.findFilterPagination(new Document("agente.idagente", localIdagente), page, rowPage, new Document("idpermiso", -1));
break;
case "_autocomplete":
//no se realiza ninguna accion
break;
case "_betweendates":
permisoList = permisoRepository.filterBetweenDatePagination("agente.idagente", agente.getIdagente(), "fechainicio", lookupServices.getFechaDesde(), "fechafin", lookupServices.getFechaHasta(), page, rowPage, new Document("idpermiso", -1));
break;
case "idagente":
permisoList = permisoRepository.findFilterPagination(new Document("agente.idagente", localIdagente), page, rowPage, new Document("idpermiso", -1));
break;
case "idpermiso":
doc = new Document("idpermiso", lookupServices.getIdpermiso()).append("agente.idagente", agente.getIdagente());
permisoList = permisoRepository.findFilterPagination(doc, page, rowPage, new Document("idpermiso", -1));
break;
case "fechainicio":
permisoList = permisoRepository.filterDayWithoutHourPagination("agente.idagente", agente.getIdagente(), "fechainicio", lookupServices.getFechaincio(), page, rowPage, new Document("idpermiso", -1));
break;
case "fechafin":
permisoList = permisoRepository.filterDayWithoutHourPagination("agente.idagente", agente.getIdagente(), "fechafin", lookupServices.getFechafin(), page, rowPage, new Document("idpermiso", -1));
break;
default:
permisoList = permisoRepository.findFilterPagination(new Document("agente.idagente", localIdagente), page, rowPage, new Document("idpermiso", -1));
break;
}
permisoFiltered = permisoList;
permisoDataModel = new PermisoDataModel(permisoList);
} catch (Exception e) {
JsfUtil.errorMessage("move() " + e.getLocalizedMessage());
}
}/