Hi,

> I am extremely new to OJB. But something I was wondering 
> regarding using the
> PB API is whether or not you can select the particular field 
> (attribute) you
> want returned. For example, i have a sql statement like such 
> SELECT ID,
> FIRSTNAME, LASTNAME FROM PEOPLE WHERE ID=2. The PEOPLE table actually
> contains the following fields: ID, FIRSTNAME, LASTNAME, ADDRESS, CITY,
> STATE, ZIP, NOTES. In OJB PB it seems that all i can do is 
> the equivalent of
> SELECT * FROM PEOPLE WHERE... I don't want to select all (*) 
> the fields
> everytime. In the afformentioned sql statement i want to just 
> produce a list
> of People objects that have only the id, firstname and 
> lastname variables
> populated. Am i missing something 

Yes!

1. OJB does *not* perform "select * from", for queries!
If you look up objects of class x OJB will read the class-descriptor for
class x and determine all necessary columns to materialize an x instance.
The performed select contains all those columns. 

If you want to limit the number of columns you can modify the
class-descriptor for class X do get a reduced number of columns.

2. OJB does have a ReportQuery concept. ReportQueries do not generate
collections of fully materialized entity objects, but a Simple tabular
representation of resultsets.

You can use PersistenceBroker.getReportQueryIteratorbyQuery(q) do iterate
over a query resultset.
You can also combine ReportQueries with QueryBySql Queries to perform
arbitrary freeform SQL. 


> or is this just not 
> possible apart from
> using a sql statement call from the PB API's QuerBySQL (if 
> that would even
> work cuz i haven't tested it). If i can't be selective about 
> the data that
> populates my People object then I will produce a lot of 
> unecessary data
> collection and population from the database to my objects. 
> Especially if the
> NOTES field can contain 250k of data (an exaggeration of 
> course but the
> point is there). The thing that attracted me to OJB was how 
> easy it is to
> code to a database with OO patterns. I hope the solution 
> isn't something
> that requires me to write some kind of extra class each time 
> i want to limit
> what is populated in my People class or require me to create 
> a whole new
> class to handle just the listing of the basic people info.

This would be a third solution, but as there are two others it's not
mandatory...

cheers,
Thomas

> Thanks,
> Brandon Goodin
> Phase Web and Multimedia
> P (406) 862-2245
> F (406) 862-0354
> [EMAIL PROTECTED]
> http://www.phase.ws
> 
> 
> --
> To unsubscribe, e-mail:   
> <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail: 
> <mailto:[EMAIL PROTECTED]>
> 

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to