After developing using castor for a while, I become more concerned about its performance, As far as I know:
1. Castor don't support the use of preparedstatement, it always use statement to load a object by key
2. It is not able to dynamically control which fields to be loaded initially or lazy-load a field. Though it support lazy-loading a collection, it still needs to retrieve all the keys of the collections.
3. So far no support for distributed cache.
 
My application needs a high performance design, I don't want to use EJB and other remote calls mechanisms, instead I will use the load balance of app server and distributed object caches.
 
I am wondering whether it is possible to modify the classdescriptor in the runtime, to disable the loading of unneeded fields, and for collections, don't load the collection object's primary keys at all (the collection may contain thousands of items), but load only when needed. Can I do it in the runtime?
 
Say that for an user, it has following categoties of info:
a. basic info: id, name,
b. extended info: home address
c. clob field: photo
d. collection: a long list of friends
 
When retrieve a list of users, it only need to retrieve the basic info; when view a specific user, it needs the extended info; when you want to photo, it will get clob field. You certainly don't want to get the friends until you want to view a specific user, and no need to retrieve primary keys of friends collection, too.
 
Is it possible to do using Castor?
 
Thanks a lot,
John W

Reply via email to