You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by Oleg Nitz <on...@ukr.net> on 2003/09/14 23:55:03 UTC

[proposal] Proxy prefetching

Hi All,

I am going to implement the feature described below and propose to turn it on  
by default or even always. I'd like to know your opinions on this: should it 
be configurable or not and if yes, what should be the default behavior.

Now the idea. You all know such classes as Article and ProductGroup, I will 
use them as example. Assume that we load the collection of Articles by some 
query. They all refer to ProductGroups. Assume that we do something like 
this:

    Collection col = pb.getCollectionByQuery(query);
    for (Iterator it = col.iterator(); it.hasNext(); )
    {
        Article article = (Article) it.next();
        doSomething(article.getProductGroup().getGroupName());
    }

If ProductGroup class wasn't describes with 
   proxy="org.apache.ojb.broker.ProductGroupProxy"
in repository.xml, then all the referred ProductGroups would be loaded by one 
query due to the recently added batch retrieval feature. But with proxy each 
ProductGroup instance would be loaded by separate query. I propose to load 
them all by one query: if user called getProductGroup().getGroupName() for 
the first article in the collection, most probably user will call this for 
all articles, and I propose to prefetch them. If user don't use 
ProductGroup's fields, like this

    Collection col = pb.getCollectionByQuery(query);
    for (Iterator it = col.iterator(); it.hasNext(); )
    {
        Article article = (Article) it.next();
        doSomething(article.getArticleName());
    }

then no ProductGroups will be loaded at all, as previously.
Similarly for CollectionProxies.
So, what do you think?

Regards,
 Oleg

P.S. Prefetching in JBoss CMP 2.0 works in a similar way.



   	  

---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org