Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

180
Vistas
¿Java Apache Olingo consulta la base de datos en sí?

En .NET C#, usamos Odata para filtrar, paginar y ordenar los resultados de la base de datos de la base de datos SQL. Odata en .NET en realidad iría a la base de datos y consultaría DÓNDE, ORDENAR por filtros a la base de datos, en lugar de extraer todos los resultados de la base de datos y aplicar el filtrado en la memoria API.

Tengo curiosidad por Java Apache Olingo, consulta la base de datos internamente o aplica filtrado en el conjunto de memoria API.

Recursos:

https://www.odata.org/libraries/

https://www.odata.org/documentation/odata-version-2-0/uri-conventions/

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Editar: como menciona @Olivier, mi respuesta original se refería a OData en .NET y no a Olingo.

Desafortunadamente, como probablemente haya descubierto usted mismo, la documentación estándar de Olingo no responde directamente a esta pregunta en particular, aunque sí menciona el soporte para el comportamiento de transmisión y carga diferida (que no tendría ningún sentido filtrar en el nivel de la aplicación).

Sin embargo, sería difícil encontrar un adaptador ORM o DB hoy en día que no admita el filtrado en el nivel de la base de datos, ya que esto casi siempre será más rápido que hacerlo en su aplicación para cargas de trabajo no triviales.

Intentaré actualizar esta respuesta con una fuente más autorizada.


(respuesta original)

Según este análisis:

Siempre que su proveedor de datos admita consultas diferidas y no fuerce la evaluación llamando a algo como .ToList(), la consulta no se evaluará hasta que se apliquen los filtros OData y se manejarán en el nivel de la base de datos.

over 4 years ago · Santiago Trujillo Denunciar

0

Respuesta corta, Olingo 2 JPAProcessor consultará la base de datos para obtener solo datos limitados si se especifican $filter y $orderby.

TLDR;

Hay dos cosas que debemos considerar aquí. Apache Olingo es un marco que permite a las personas implementar el servidor y el cliente de OData en Java, pero solo le proporcionará las clases e interfaces abstractas que implementa OdataProcessors , como quiera.

Ahora, llegando al segundo punto, también se proporciona una implementación de JPA en el Proyecto Olingo, que puede ubicar aquí

Para responder a su pregunta, profundicemos en el código de este proyecto para ver cómo se implementa.

Tendremos que comenzar con JPAProcessorImpl y pasar a process(final GetEntitySetUriInfo uriParserResultView) , aquí es donde se implementan la consulta y los datos reales de cómo se obtienen los datos en la base de datos.

En la línea 150, la consulta real ya está creada, por lo que si pasa $filter (cláusula where) y $orderby , podemos ver que los valores realmente se pasan a la base de datos y se hornean en la consulta

Captura de pantalla de depuración de Olingo

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda