[
https://issues.apache.org/jira/browse/OLINGO-1183?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16575105#comment-16575105
]
Allen Laack commented on OLINGO-1183:
-------------------------------------
I'm using olingo 2.0.6 and face the same issue. Salesforce.com's odata client
sends both $top and $inlinecount for certain queries. When $inlinecount is
passed, olingo ends up doing pagination in memory from all the db results so
that it can also get a total record count for inlinecount. Eventually JVM out
of memory issues appear. I think it would be better if olingo ran a count(*)
from the db first to get the value for inlinecount and another query to get the
result set using db pagination. FYI: I have olingo paired with eclipselink
using an Oracle DB. DB pagination works, but only when $inlinecount isn't
passed into olingo. Unfortunately, salesforce is passing it and I can't change
salesforce.
> JPAPage - Load all entities from DB, no paging on DB query
> ----------------------------------------------------------
>
> Key: OLINGO-1183
> URL: https://issues.apache.org/jira/browse/OLINGO-1183
> Project: Olingo
> Issue Type: Bug
> Components: odata2-jpa
> Affects Versions: V2 2.0.8, V2 2.0.9
> Reporter: Francesco longhitano
> Priority: Major
>
> If i using the paging with $top, $skip and $inlinecount=allpages the class
> JPAPage load all entities from DB (howewer filtered by the where), no setting
> on top and skip for paginated query directly from db. That's a problem if the
> query return many result (in our case ~100000 of complex entity).
> I'm looking into the code and the problem is not so easy to resolve. The
> inlinecount is managed by ODataJPAResponseBuilderDefault, as an size() called
> on the result of query. Then if there is top or skip the class do a filter on
> the result list, to return to client only the correct entities. So even if i
> correct set top and skip on JPAPage modifing the method handlePaging using an
> custom implementation of JPAProcessor, then the result __count show an wrong
> result.
> Example URL
> Entities?$skip=10&$top=10&$inlinecount=allpages
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)