cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrus Adamchik <and...@objectstyle.org>
Subject Re: Loading small tables into memory for the application lifetime
Date Mon, 30 Jun 2008 15:47:34 GMT

On Jun 30, 2008, at 6:33 PM, Mike Kienenberger wrote:

> But what about putting the constant tables into a parent DataContext,
> then doing all of your work in the child DataContext?   Does that
> remove the need for using localObject, but still give you the
> flexibility to toss the child context objects?

That won't work directly, you still have to get a local object (it  
won't be fetched from DB, and rather resolved from memory, but still).  
But here is another way to work with lookup tables in 3.0 - use shared  
caching... So locally you'd do this:

// you don't have to make it static; just wanted to point out
// that the query object itself is reusable (as long as there is no  
parameters)
// This query can be mapped in the Modeler just as well.
static final SelectQuery countriesQuery = new  
SelectQuery(Country.class);

static {
    countriesQuery.setCacheStrategy(QueryCacheStrategy.SHARED_CACHE);
}


public void myNonStaticMethod() {
    ...
    List localCountries = context.performQuery(countriesQuery);
}

There is some overhead with the shared cache access, but still with  
this approach you don't have to mess with 'localObject'. I'd say this  
is an ideal separation of code from configuration.

Andrus

Mime
View raw message