3

我在 Hibernate 之上使用 Olingo 1.2。

我有一个返回 250 行的请求,每行以一对多的关系链接到另一个表。

我执行 $expand 以获取子表中的所有数据,但是当我检查在数据库中执行的查询时,似乎有 251 个单独的调用正在进行,一个用于返回 250 行的主表,然后一个用于每个返回子记录的行。

查看 Olingo 代码,这种惰性方法是设计使然。

我在 Microsoft ODATA 处理器上测试了 $expand,在这种情况下他们使用了贪婪的方法。

我的问题是:如何切换 Olingo 以使用 $expand 的贪婪方法(即将加入下推到数据库中)?

4

1 回答 1

0

您看到生成的查询是 Hibernate 的结果,而不是 Olingo。这是 Hibernate 用来为子表生成查询的默认方式。您需要查看@Fetch(FetchMode.Join)Hibernate 中的注释并将其应用于您的关系。请查看此链接以获取说明:

https://stackoverflow.com/a/11077041/3873392

于 2015-05-18T14:46:12.887 回答