我在Hibernate上使用的是Olingo 1.2。
我有一个返回250行的请求,每行都以一对多的关系链接到另一个表。
我执行$expand来获取子表中的所有数据,但是当我检查在数据库中执行的查询时,会发现有251个单独的调用正在进行,一个针对主表,返回250行,然后针对每一行都进行一个调用,以返回子记录。
看一下Olingo代码,这种懒惰的方法是经过设计的。
我在Microsoft ODATA处理器上测试了$expand,他们在本例中使用了贪婪的方法。
我的问题是:如何将Olingo切换为对$expand使用贪婪的方法(即将连接下推到数据库中)?
发布于 2015-05-18 22:46:13
您看到生成的查询是Hibernate的结果,而不是Olingo。这是Hibernate为子表生成查询的默认方式。您需要查看Hibernate中的@Fetch(FetchMode.Join)注释,并将其应用于关系。请查看此链接以了解相关说明:
https://stackoverflow.com/questions/24508348
复制相似问题