This was with a SelectQuery already.
Just verified that you're right: this is a problem with my qualifiers.
The column type is varchar.  I was trying to map the object property  
as an enum.  But I wasn't sure how to specify the qualifier, so I  
tried as:
entryType = 'ENUM_CONST_NAME'
Which failed.  When I changed the java type of entryType to string,  
cayenne properly instantiated the subclasses.
So I suppose that raises the question of whether we support enum- 
mapped properties as the discriminators, and if so, what's the proper  
syntax for specifying the enum constant in the qualifier field?
Robert
On Apr 24, 2009, at 4/241:23 AM , Andrus Adamchik wrote:
>
> On Apr 24, 2009, at 5:35 AM, Robert Zeigler wrote:
>
>> No, it's a bit more complicated.  The template is one portion of  
>> the fix, but even if the entity is marked abstract (in both the  
>> mapping and the java class), cayenne will try to instantiate it in  
>> the aforementioned query on superclass case.  So a complete  
>> solution will require that case to resolve and instantiate the  
>> subclass types, rather than attempting to instantiate the  
>> superclass type.
>>
>> Robert
>
> Hi Robert,
>
> The whole logic for instantiating an object of a given class is  
> based on the combination of entity qualifiers in the hierarchy  
> (including on the base class).  So unless this is a bug specific to  
> EJBQLQuery (could you try the same thing with SelectQuery?), maybe  
> the condition on a given result set row yielded a base class somehow?
>
> Could you post the stack trace and entity qualifiers?
>
> Thanks,
> Andrus
>
This archive was generated by hypermail 2.0.0 : Fri Apr 24 2009 - 02:51:43 EDT