Could you try iterating through list using counter variable (e.g. for (int i = 0; i < list.size(); i++)) to see if it works?
2009/11/11 Hans Pikkemaat <[email protected]> > Hi, > > This is the 'working' part > > System.out.println("Running with fetchlimit: " + pageSize); > final DataContext dataContext = this.createDataContext(); > > SQLTemplate query = new SQLTemplate(VersionedObjectImpl.class, sql); > query.addPrefetch(_VersionedObjectImpl.ATTRIBUTES_PROPERTY); > > if (pageSize > 0) { > query.setPageSize(pageSize); > } > List<VersionedObjectImpl> list = dataContext.performQuery(query); > > for (Iterator<VersionedObjectImpl> iterator = list.iterator(); > iterator.hasNext();) { > this.show(iterator.next()); > } > > VersionedObjectImpl.class is the main table and the > VersionedobjectImpl.ATTRIBUTES_PROPERTY > is the relation name for the detail table. > > The sql provided is (my own made simple 'try out' query, the actual query > is WAY more complex) > > select o.object_id as "OBJECT_ID", o.ancestor_path > as "ANCESTOR_PATH", o.object_type as "OBJECT_TYPE", > o.object_identifier as "OBJECT_IDENTIFIER", > o.created_revision_id as "CREATED_REVISION_ID", > o.deleted_revision_id as "DELETED_REVISION_ID", a.attribute_id > as "attributes.ATTRIBUTE_ID", a.name as > "attributes.NAME", a.type_name as "attributes.TYPE_NAME", > a.string_value as "attributes.STRING_VALUE", a.integer_value > as "attributes.INTEGER_VALUE", a.date_value as > "attributes.DATE_VALUE" from rev_object o left join rev_attribute a > on a.object_id=o.object_id > > If I run this without page size no problem. > With page size set eg to 100 I get > > > Exception in thread "main" org.apache.cayenne.CayenneRuntimeException: > [v.3.0B1 Nov 09 2009 09:53:47] Some ObjectIds are missing from the database. > Expected 100, fetched 85 > at > org.apache.cayenne.access.IncrementalFaultList.checkPageResultConsistency(IncrementalFaultList.java:364) > at > org.apache.cayenne.access.IncrementalFaultList.resolveInterval(IncrementalFaultList.java:301) > at > org.apache.cayenne.access.IncrementalFaultList.get(IncrementalFaultList.java:550) > at > org.apache.cayenne.access.IncrementalFaultList$1.next(IncrementalFaultList.java:467) > at > com.traserv.incrementalsupply.integration.demo.CayenneDemo.doit1a(CayenneDemo.java:188) > at > com.traserv.incrementalsupply.integration.demo.CayenneDemo.main(CayenneDemo.java:235) > > > tx > > Hans > > > Andrus Adamchik wrote: > >> You may have done that already in the previous messages, but could you >> give a snip of your SQLTemplate creation code here (just to make sure I >> understand all the settings used in this specific case). And also if >> possible, SQL generated in the console for the initial query, and then for >> the failing page query? >> >> Thanks, >> Andrus >> >> >> On Nov 11, 2009, at 2:51 PM, Hans Pikkemaat wrote: >> >> >> >>> Hi, >>> >>> I tried 3.0b but without effect. >>> >>> If I use an SQLTemplate in combination with setPageSize I also get the >>> exception mentioned earlier: >>> >>> Exception in thread "main" org.apache.cayenne.CayenneRuntimeException: >>> [v.3.0B1 Nov 09 2009 09:53:47] Some ObjectIds are missing from the >>> database. Expected 100, fetched 85 >>> at org .apache .cayenne .access .IncrementalFaultList >>> .checkPageResultConsistency(IncrementalFaultList.java:364) >>> at org .apache .cayenne .access >>> .IncrementalFaultList.resolveInterval(IncrementalFaultList.java:301) >>> at org .apache >>> .cayenne.access.IncrementalFaultList.get(IncrementalFaultList.java: 550) >>> at org.apache.cayenne.access.IncrementalFaultList >>> $1.next(IncrementalFaultList.java:467) >>> at com .traserv .incrementalsupply >>> .integration.demo.CayenneDemo.doit1(CayenneDemo.java:136) >>> at com .traserv .incrementalsupply >>> .integration.demo.CayenneDemo.main(CayenneDemo.java:183) >>> >>> If I use a SelectQuery it works oke. But this is not an option for me >>> because I cannot construct >>> my query using SelectQuery because of its complexity. >>> >>> Any ideas? >>> >>> tx >>> >>> Hans >>> >>> >> >> >> > > > -- Andrey
