Hi all,

I’ve been using the new column select API for the past week days and I’m loving 
it so far.

One thing that I find a little bothersome (and at times confusing) when using 
these APIs though is how return types change based on what you’re fetching, 
especially how the type will change between List<Object> to List<Object[]> 
based on if I’m fetching multiple columns or a single column (I see this was 
discussed a little on the list the other day). As an API consumer I think it 
would be much nicer if fetches consistently returned List<Object[]>.

If this isn’t possible, might a possible workaround be to make DataRow fetches 
always return DataRows? That would allow me to stick to a single API and have 
consistent results from fetches, regardless of whether I’m limiting myself to a 
set of columns. Example:

                List<DataRow> list = ObjectSelect.dataRowQuery( Entry.class )
                                .where( Entry.RECEIPT.dot( Receipt.USER ).dot( 
User.NAME ).eq( "Hugi Þórðarson" ) )
                                .columns( Entry.TEXT, Entry.PRICE )
                                .select( someObjectContext() );

                for( DataRow entry : list ) {
                        System.out.println( entry.get( "text" ) );
                }

Cheers,
- hugi

Reply via email to