cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrus Adamchik <>
Subject Re: Memory usage and select statements
Date Mon, 30 Jun 2008 09:01:22 GMT
There is no lazy fetching of attributes (only relationships). We will  
be adding it at some point. It is a bit more involved than simply  
suppressing a given column in the SQL translator. Still you have a few  
of options:

1. Place large columns in a separate table with 1..1 relationship to  
the master table .
2. Do not map large columns in the ObjEntity and resolve them manually  
on demand (either with SQLTemplate, or by mapping a second entity to  
the same table).


On Jun 30, 2008, at 11:54 AM, Øyvind Harboe wrote:
> An SQL statement includes a list of which columns to fetch for
> the query.
> Consider a table "book" with three columns, id(pk), title(<100 chars)
> and content(the entire text of the book).
> SELECT id, title FROM book
> If one of the columns are big and rarely used, then it makes little
> sense to transfer it to the client from the database for every
> query. E.g. above the entire text of the book is left out.
> The difference in memory usage can be quite dramatic.
> Can I do the same w/Cayenne?
> Can I have the columns fetched on-demand?
> I'd like to avoid hardcoded SQL templates obviously.
> SelectTranslator.createSqlString() unconditionally adds all
> columns...
> -- 
> Øyvind Harboe
> ARM7 ARM9 XScale Cortex
> JTAG debugger and flash programmer

View raw message