I'm also having this problem - thank god someone else's said so ! it's been driving me mad ;-)
i've been using ojb since 0.9.5 and have only noticed it recently. (sorry can't be more precise than that) here's the offending class descriptor <class-descriptor class="com.buyacar.businessobjects.Vehicle" table="vehicle"> ....blah blah properties etc <!-- IMAGES --> <collection-descriptor name="images" auto-retrieve="true" element-class-ref="com.buyacar.businessobjects.VehicleImage"> <inverse-foreignkey field-id-ref="1"/> </collection-descriptor> </class-descriptor> <class-descriptor class="com.buyacar.businessobjects.BACVehicleDetails" table="bac_details"> <reference-descriptor name="vehicle" class-ref="com.buyacar.businessobjects.Vehicle" auto-retrieve="true"> <foreignkey field-id-ref="2"/> </reference-descriptor> </class-descriptor> whenever I load a BACVehicleDetails (and therefore a Vehicle) I only ever get one image in the collection. more over I have a search engine that only returns 1 result the first time then 2 on the second submit then 3 ......etc :-( heres the search engine code PersistenceBroker broker = null; try { broker = getBroker(); Criteria criteria = new Criteria(); // check if theyve specified a price bracket if(searchParams.getMaxPrice() !=null && searchParams.getMinPrice()!=null) { criteria.addBetween("price",searchParams.getMinPrice(),searchParams.getMaxPr ice()); } else if(searchParams.getMaxPrice()!=null && searchParams.getMinPrice()==null) { criteria.addLessOrEqualThan("price",searchParams.getMaxPrice()); } else if(searchParams.getMaxPrice()==null && searchParams.getMinPrice()!=null) { criteria.addGreaterOrEqualThan("price",searchParams.getMinPrice()); } if(searchParams.getManufacturer() !=null && searchParams.getModel()==null) { criteria.addEqualTo("vehicle.model.manufacturerId",searchParams.getManufactu rer()); } if(searchParams.getModel() !=null) { criteria.addEqualTo("vehicle.modelId",searchParams.getModel()); } if(searchParams.getBodyStyle() != null) { criteria.addEqualTo("vehicle.derivative.bodyStyleId",searchParams.getBodySty le()); } if(searchParams.getFuelType() != null) { criteria.addEqualTo("vehicle.derivative.fuelId",searchParams.getFuelType()); } if(searchParams.getOrderBy() !=null) { criteria.addOrderByAscending(searchParams.getOrderBy()); } if(searchParams.getChannel()!=null && !searchParams.getChannel().equals("")) { criteria.addEqualTo("channel",searchParams.getChannel()); } criteria.addEqualTo("status",searchParams.getStatus()); criteria.addEqualTo("visibility",searchParams.getVisibility()); criteria.addGreaterOrEqualThan("displayTo",new java.util.Date()); criteria.addLessOrEqualThan("displayFrom",new java.util.Date()); Query query = new QueryByCriteria(BACVehicleDetails.class,criteria,true); Collection c = broker.getCollectionByQuery(query); logger.debug("collection size: "+c.size()); Iterator results = c.iterator(); ArrayList list = new ArrayList(); while(results.hasNext()) { // perform cast now to check that we've got the correct object type BACVehicleDetails vDetails = (BACVehicleDetails) results.next(); list.add(vDetails); } return list; } finally { if (broker!=null) { broker.close(); } } sorry for the long code post it seems that when the cache is filled up it works ok help this is stopping me going live with the site :-( BTW I did a search on the dev list and noticed a bug opened on the 23rd MAy but i can't find it now cheers Jin ----- Original Message ----- From: "McCaffrey, John G." <[EMAIL PROTECTED]> To: "'OJB Users List'" <[EMAIL PROTECTED]> Sent: Friday, May 30, 2003 5:52 PM Subject: RE: Limited collection returned > yes, I also noticed that, and I tried pre-fetching, but that didn't help me > either. > > so are you having the same problem then? You are only getting one row back, > instead of many? > > (my collection is filled properly with the right child elements, but I am > not getting all of the parents that match the query, and the query is select > all parents) > > can you see the SQL? I couldn't get P6Spy to work, so I don't know what the > sql looks like. > > thanks for speaking up, I wonder if anyone else has had/is having this > problem! > > -John > > -----Original Message----- > From: Dan Hanley [mailto:[EMAIL PROTECTED] > Sent: Friday, May 30, 2003 11:47 AM > To: OJB Users List > Subject: RE: Limited collection returned > > > John > Setting auto-retrieve = "false" works for me using JBoss & mySQL *except* > that then I don't get any dependant ojbects loaded :-( > > > -----Original Message----- > From: McCaffrey, John G. [mailto:[EMAIL PROTECTED] > Sent: 30 May 2003 17:45 > To: 'OJB Users List' > Subject: RE: Limited collection returned > > > I have been having the same problem. It seems like the initial query > actually gets all the rows, but the RSIterator only gives you one at a time. > In my situation if I have 4 rows that match the query, and I execute the > query once, I only get one row, each additional time I execute the query I > get one more row (all previous rows are also returned in the collection). > This is only happening for a referenced collection, all of my other queries > are working fine. I have no Idea what the deal is, I really hope that > someone can help you. > > -John > > -----Original Message----- > From: Ken Dempster [mailto:[EMAIL PROTECTED] > Sent: Friday, May 30, 2003 11:38 AM > To: [EMAIL PROTECTED] > Subject: Limited collection returned > > > Most everything works except I only get one out of the know four row > objects from the table in my collection. I want to get all the row > objects in the table. My question is why am I only getting only one row > object? I am not sure what I am doing something wrong. > > Here is how I have things setup. I have set jboss 3.2 as suggested in > the deployment section of the documentation and have jboss configured it > with data source to connect to a DB2 database. I am requesting a > collection from a client to a SessionBean that delegates to a > PersistenceBroker instance. Basicly I am using the code in > PersistenceBrokerBean as a template for my EJB. I do generate my own > JdbcConnectionDescriptor and pass it to the ConnectionRepository instead > of using the repository.xml to define my JdbcConnectionDescriptor. > > My query looks as follows: > Query query = new QueryByCriteria(Runner.class, null); > > Collection list = > getPersistenceBrokerRemote().getCollectionByQuery(query); > > > My ClassDescriptor of the collection of objects I am trying to get is > defined in the repository_user.xml as follows : > > <class-descriptor class="test.ojb.Runner" table="KENLIB.RUNNER"> > > <field-descriptor name="m_id" column="ID" jdbc-type="INTEGER" > primarykey="true" autoincrement="true"/> > > <field-descriptor name="m_name" column="NAME" jdbc-type="VARCHAR"/> > > <collection-descriptor name="m_times" element-class-ref="test.ojb.Time"> > > <inverse-foreignkey field-ref="m_id"/> > > </collection-descriptor> > > </class-descriptor> > > <class-descriptor class="test.ojb.Race" table="KENLIB.RACE"> > > <field-descriptor name="m_id" column="ID" jdbc-type="INTEGER" > primarykey="true" autoincrement="true"/> > > <field-descriptor name="m_location" column="LOCATION" > jdbc-type="VARCHAR"/> > > <field-descriptor name="m_date" column="DATE" jdbc-type="DATE"/> > > </class-descriptor> > > <class-descriptor class="test.ojb.Time" table="KENLIB.RACE_TIME"> > > <field-descriptor name="m_id" column="ID" jdbc-type="INTEGER" > primarykey="true" autoincrement="true"/> > > <field-descriptor name="m_runner_id" column="RUNNER_ID" > jdbc-type="INTEGER"/> > > <field-descriptor name="m_race_id" column="RACE_ID" > jdbc-type="INTEGER"/> > > <field-descriptor name="m_time" column="TIME" jdbc-type="VARCHAR"/> > > <reference-descriptor name="m_race" class-ref="test.ojb.Race"> > > <foreignkey field-ref="m_race_id"/> > > </reference-descriptor> > > </class-descriptor> > > > > > Ken Dempster > Programmer Analyst > Vision Solutions, Inc. > > 17911 Von Karman Ave, 5th Floor > Irvine, CA 92614 > UNITED STATES > > Tel: +1 (949) 253-6500 > Fax: +1 (949) 253-6501 > Email: [EMAIL PROTECTED] > <http://www.visionsolutions.com/> > Disclaimer - 5/30/2003 > The contents of this e-mail (and any attachments) are confidential, may be > privileged, and may contain copyright material of Vision Solutions, Inc. or > third parties. You may only reproduce or distribute the material if you are > expressly authorized by Vision Solutions to do so. If you are not the > intended recipient, any use, disclosure or copying of this e-mail (and any > attachments) is unauthorized. If you have received this e-mail in error, > please immediately delete it and any copies of it from your system and > notify us via e-mail at [EMAIL PROTECTED] > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]