Ah got it, the exception is in your code, not the Cayenne code. 

Your SQLResult defines the result as Object[], so this is what you are getting 
here. You can either keep casting to Map and remove the SQLResult code. Or keep 
using SQLResult and cast to Object[]

Andrus

On Sep 1, 2011, at 9:40 AM, Sylwia Bugla wrote:

> The exception stack is nothing more then:
> Exception in thread "main" java.lang.ClassCastException:
> [Ljava.lang.Object; cannot be cast to java.util.Map
> on the line:
> Map dr = (Map) o;
> 
> I thought that if the SQLTemplate is setted to a Persistent object
> (PublicationAuthors.class in this case) than the result is going to be
> a List of this Persistent objects. In this case it returns Object and
> I can not cast it to anything else. After adding the two column
> results (X and CNT) as a SQLResult it just doesn't work any more.
> I don' t know now how can I get the results of the two extra columns X and 
> CNT?
> 
> Thank you.
> 
> On 1 September 2011 13:37, Andrus Adamchik <and...@objectstyle.org> wrote:
>> Could you please post the exception stack trace?
>> 
>> On Sep 1, 2011, at 1:58 AM, Sylwia Bugla wrote:
>> 
>>> Hello everyone.
>>> I am getting desperate about this issue. I have a simple piece of code
>>> whose purpose is to make some counts in the database. It goes like
>>> this:
>>> 
>>> String sql = "SELECT a.author_id X, count(*) CNT FROM
>>> `publication_authors` a WHERE a.`cid` != 0 and a.cid = 1234  group by
>>> a.author_id ORDER BY a.`cid` ASC";
>>> 
>>>            SQLTemplate query = new
>>> SQLTemplate(PublicationAuthors.class, sql);
>>>            query.setFetchingDataRows(true);
>>> 
>>>            SQLResult resultDescriptor = new SQLResult();
>>>            resultDescriptor.addColumnResult("X");
>>>            resultDescriptor.addColumnResult("CNT");
>>>            query.setResult(resultDescriptor);
>>> 
>>>            List objects =  context.performQuery(query);
>>> 
>>>            for(Object o: objects){
>>>                Map dr = (Map) o; //tried with PublicationAuthors,
>>> DataMap => always getting an exeption here "ClassCastException"
>>>                System.out.println(dr.keySet());
>>>            }
>>> 
>>> Could someone explain me what am I doing wrong in here?
>>> Thanks
>>> Sylwia
>>> 
>> 
>> 
> 

Reply via email to