> On Mar 13, 2017, at 4:41 PM, Hugi Þórðarson <[email protected]> wrote:
> 
> Hi all.
> I’m getting some unexpected behaviour when applying a fetch limit and doing 
> joint prefetching on a to-many relationship. In short, the number of objects 
> returned is always lower than the actual fetch limit I set. Problem goes away 
> if I do a disjoint prefetch or no prefetching at all.
> 
> I created a tiny self-contained maven project that demonstrates the problem:
> 
> https://bitbucket.org/hugi/prefetch-dilemma
> 
> The source for the main class in that project (that can be run to show what 
> happens):
> 
> https://bitbucket.org/hugi/prefetch-dilemma/src/master/src/main/java/prefetchdilemma/Main.java
> 
> Anyone run into this before?
> 
> Cheers,
> - hugi


Yeah, that's a limitation described here: [1]. Also mentioned in the docs, 
though it may be hard to spot [2]:

"Disjoint-by-ID Prefetching Semantics [..] Moreover this is the only type of 
prefetch that can handle SelectQueries with fetch limit. Both joint and regular 
disjoint prefetches may produce invalid results or generate inefficient 
fetch-the-entire table SQL when fetch limit is in effect."

Andrus

-------------------
Andrus Adamchik
Twitter: @andrus_a
https://objectstyle.com/apache-cayenne-training


[1] https://issues.apache.org/jira/browse/CAY-1130
[2] https://cayenne.apache.org/docs/4.0/cayenne-guide/performance-tuning.html

Reply via email to