gpt4 book ai didi

java - Java Apache Olingo 是否查询数据库本身?

转载 作者:行者123 更新时间:2023-12-05 03:32:59 28 4
gpt4 key购买 nike

在 .NET C# 中,我们使用 Odata 对来自 SQL 数据库的数据库结果进行筛选、分页和排序。 .NET 中的 Odata 实际上会进入数据库,并查询 WHERE,ORDER By Filters 到数据库,而不是提取所有数据库结果,并在 api 内存上应用过滤。

我对 Java Apache Olingo 很好奇,在内部查询数据库或在 API 内存集上应用过滤。

资源:

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

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

最佳答案

简短的回答,如果指定了 $filter 和 $orderby,Olingo 2 JPAProcessor 将查询数据库以仅获取有限的数据。

TLDR;

这里我们需要考虑两件事。 Apache Olingo 是一个框架,它允许人们在 Java 中实现 OData 服务器和客户端,如果只是为您提供您实现 OdataProcessors 的抽象类和接口(interface),无论您想要什么。

现在谈到第二点,Olingo 项目中也提供了一个 JPA 实现,您可以找到它 here

为了回答你的问题,让我们深入研究这个项目的代码,看看它是如何实现的

我们必须从 JPAProcessorImpl 开始,然后跳转到 process(final GetEntitySetUriInfo uriParserResultView)this is where实现了查询和如何在数据库中获取数据的实际情况。

在第 150 行,实际查询已经构建,因此如果您传递 $filter(where 子句)和 $orderby,我们可以看到实际传递的值到数据库并在查询中烘焙

Olingo Debugging screenshot

关于java - Java Apache Olingo 是否查询数据库本身?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70397716/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com