[
https://issues.apache.org/jira/browse/JDO-760?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15891170#comment-15891170
]
Tilmann Zäschke commented on JDO-760:
-------------------------------------
Thinking about this, returning a {{List}} has two noteworthy implications:
Lists have random access via {{get()}} and allow reverse traversal via the
{{ListIterator}}. Both may be problematic for queries with large results,
because they make it difficult to throw results away once they have been
traversed. When traversing large result sets with 1 million results or so,
throwing away 'seen' results is a good policy. An alternative would be to
implement 'reverse' queries, that would at least allow reverse traversal with
the {{ListIterator}}, but it seems to be a lot of effort for a feature (reverse
traversal) that may be rarely used.
Maybe I missed something in the spec, for example, is reverse traversal or
random access optional behavior?
> Spec update regarding whether Query.execute() returns List or Collection
> ------------------------------------------------------------------------
>
> Key: JDO-760
> URL: https://issues.apache.org/jira/browse/JDO-760
> Project: JDO
> Issue Type: Improvement
> Components: specification
> Affects Versions: JDO 3.1
> Reporter: Tilmann Zäschke
> Assignee: Tilmann Zäschke
> Priority: Trivial
> Labels: documentation
> Fix For: JDO 3.2
>
>
> The spec says in Section 14.6.1 that Query.execute() returns an unmodifiable
> {{List}}.
> However, the text in Section 14.3 ('uniquenes'), Section 14.10.2 and all
> examples in Section 14.10 suggest that a {{Collection}} is returned. I
> suggest updating the spec to refer to {{List}} in the listed sections.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)