complex query vs performIteratedQuery vs Prefetching

From: Hans Pikkemaat (h.pikkemaa..si-solutions.nl)
Date: Tue Nov 10 2009 - 07:57:20 EST

  • Next message: Andrey Razumovsky: "Re: complex query vs performIteratedQuery vs Prefetching"

    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?



    This archive was generated by hypermail 2.0.0 : Tue Nov 10 2009 - 07:58:01 EST