>> 1) When fetching data rows, can I limit the set of fields fetched, i.e. is 
>> there an equivalent to EOF’s EOFetchSpecification.setRawRowKeyPaths( NSArray 
>> )?
> 
> Not right now. This is doable with EJBQLQuery (it allows to specify 
> individual columns, aggregate functions, etc). This functionality is coming 
> soon to SelectQuery/ObjectSelect (probably in M3).

Great! We use EOF a lot for reporting so this will be really helpful 
performance/memory wise.

> 
>> 2) When specifying the prefetch, why do I have to addPrefetch( 
>> A.SOME_REL.joint() ) instead of just doing addPrefetch( “someRel” )? 
> 
> You can still use the String. A.SOME_REL form is an alternative that gives 
> you a compile-time guarantee that your property name is valid .

Hmm, doesn’t seem to work. This code performs the expected prefetch:

 SelectQuery<DataRow> q = SelectQuery.dataRowQuery( SMReceipt.class );
 q.addPrefetch( SMReceipt.SHOP.joint() );
 List<DataRow> list = objectContext.select( q );

While this doesn’t:

 SelectQuery<DataRow> q = SelectQuery.dataRowQuery( SMReceipt.class );
 q.addPrefetch( SMReceipt.SHOP.getName() );
 List<DataRow> list = objectContext.select( q );

Should I file a bug report?


>> When traversing further relationships, is this the correct way? :
>> 
>> q.addPrefetch( PrefetchTreeNode.withPath( "shop.chain", 1 ) );
> 
> q.addPrefetch( A.SHOP.dot(Shop.CHAIN).disjoint()) is probably a cleaner way. 

Thanks,
- hugi

Reply via email to