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
>>
>
>
This archive was generated by hypermail 2.0.0 : Wed Nov 11 2009 - 08:51:09 EST