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 <h.pikkemaa..si-solutions.nl>
> 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
This archive was generated by hypermail 2.0.0 : Wed Nov 11 2009 - 09:03:07 EST