Búsquedas findBy
Búsquedas findBy()
Proporciona métodos para realizar consultas y devolver una lista de entitys.
Métodos
Método
Base datos soportada
public List < T > findBy(Document doc, Document... docSort)
MongoDB
public List< T > findBy(String key, Object value, Document... docSort)
MongoDB
public List< T> findBy(String statement)
Couchbase
public List< T> findBy(N1qlQuery query)
Couchbase
public List<T> findBy(String sql)
MongoDB soporta sql
public List<T> findBy(Bson builder, Document... docSort)
MongoDB, soporta objetos Builder
Document doc: representa al Documento a buscar.
docSort: opcional Documento a ordenar.
String key: es el nombre del atributo a buscar
String value: es el valor del atributo a buscar Retorna un List < T > de todos los documentos que coincidan con el criterio.
String statement: Es una sentencia N1QL, similar a SQL.
N1qlQuery query: Es el lenguaje N1QL desarrollado por Couchbase
Ejemplos MongoDB
Busca los documentos que coincidan con siglas = cu sin ordenar
List < Paises > list =paisesRepository.findBy(new Document("idpais", "cu") );
Busca los documentos que coincidan con Siglas = cu ordenado por Pais
List< Paises > list =paisesRepository.findBy(new Document("idpais", "cu") , new Document(“pais”,1));
Busca en el documento embebido sin ordenar
List< Paises > list =paisesRepository.findBy(new Document("continentes.idcontinente", "5") );
Busca en el documento embebido ordenado por Pais
List< Paises > list =paisesFacade.findBy(new Document("continentes.idcontinente", "5") , new Document(“pais”, 1));
Busca en el documento los que la población sea mayor de 500 sin ordenar
List< Paises > list =paisesRepository.findBy(new Document(“poblacion”, new Document("$gt", 500) );
Busca en el documento los que la población sea mayor de 500 ordenado por Pais
List< Paises > list =paisesRepository.findBy(new Document(“poblacion”, new Document("$gt", 500) ,new Document("pais",1));
Busca en el documento los que la población sea menor de 200
List < Paises > list =paisesRepository.findBy(new Document(“poblacion”, new Document("$lt", 200) );
Busca en el documento los que la población sea igual a 800
List< Paises > list =paisesReository.findBy(new Document("poblacion", new Document("$eq", 800) );
Buscar embebidos
Se especifica coleccion.atributo
List< Paises > list =paisesReository.findBy(new Document("continentes.continente", "Tierra"));
Buscar referenciados
List< Paises > list =paisesReository.findBy(new Document("idcontinente","am");
Builder
Pasamos el Builder como parámetro en este caso (activo="si" y marca.idmarca=9)
List<Articulo> list = articuloRepository.findBy(and(eq("activo","si"),eq("marca.idmarca",9)));
if (list == null || list.isEmpty()) {
System.out.println("->no hay articulos con esa condicion");
} else {
System.out.println("-> cantidad de articulos " + list.size());
}
Soporte SQL
String sql = "select * from pais where idcontinente='am'";
List< Paises > list =paisesReository.findBy(sql,"am");
Ejemplos Couchbase
Busca el planeta cuyo nombre sea marte.
List<Planetas> list= planetasFacade.findAll("select * from default where planeta='Marte'");
list.forEach((p) -> {
System.out.println(p.toString());
});
Buscar mediante N1QL
N1qlQuery query = N1qlQuery
.simple(select("*")
.from("default")
.limit(10));
PlanetasFacade planetasFacade = new PlanetasFacade();
List<Planetas> list = planetasFacade.findBy(query);
list.forEach((p) -> {
System.out.println(p.toString());
});
Buscar por atributos combinados
Mezclamos parámetros
new Document("idpermiso", permiso.getIdpermiso()).append("agente.idagente",agente.getIdagente())
public String searchById() {
try {
writable = true;
List<Permiso> list = permisoRepository.findBy(new Document("idpermiso", permiso.getIdpermiso()).append("agente.idagente",agente.getIdagente()), new Document("idpermiso", -1));
if (!list.isEmpty()) {
writable = false;
permisoList.removeAll(permisoList);
permisoList = list;
permisoFiltered = permisoList;
permisoDataModel = new PermisoDataModel(permisoList);
} else {
permisoList.removeAll(permisoList);
permisoFiltered = permisoList;
permisoDataModel = new PermisoDataModel(permisoList);
JsfUtil.warningMessage(rf.getAppMessage("warning.noexiste"));
return "";
}
} catch (Exception e) {
JsfUtil.errorMessage("searchById()" + e.getLocalizedMessage());
}
return "";
}// </editor-fold>
Last updated
Was this helpful?