Hi,

My case:

I have a complex query which returns a huge amount of data. It returns data from
two tables which are joined.

Because the amount of data is huge I cannot load all of it into memory.
For this reason I want to use an iterated query.

I also want to prevent cayenne from executing a query for each detail record
so I want to use prefetching.

What I tried:

   - I'm using cayenne 2.0.4.
   - I use SQLTemplate to instantiate the query.
- I set the page size to 1000 to prevent loading the whole db (required for postgres)
   - I use performIteratedQuery to run the query.
- As I get DataRows back from the iterated query I use dataContext.objectFromDataRow(..) to create my objects

The Problem:

The relation is not automatically setup. This means that for every record I access the detail table a query is executed.

My Questions:

- How should I use prefetching in combination with SQLTemplate and an iterated query which returns DataRows? - Is there a way to manually setup this relationship (without changing the state of the parent object?)
   -  Is there another way to do what I want using Cayenne?

Reply via email to