On Feb 23, 2006, at 9:26 PM, Tore Halset wrote:
> On Feb 23, 2006, at 16:40, Andrus Adamchik wrote:
>
>> Cayenne has an implicit contract to not modify the queries when  
>> they are passed along the stack. Among other things this  
>> simplifies "indirect" queries implementation, such as QueryChain.  
>> So generic Query and QueryMetadata interfaces  intentionally don't  
>> provide setters.
>
> I am working on named queris for the jpa-stuff. I get the query  
> from the DataMap and want to manipulate the query with things like  
> setFetchLimit etc.
EntityManager is a single user session, while DataMap and its queries  
are shared by all sessions. So we must return an instance of  
javax.persistence.Query built in such way that its modifications are  
not viewable inside other EntityManagers.
So I guess a wrapper-based approach makes sense regardless of the  
underlying query type (so a user will manipulate the properties of  
the wrapper), and as far as I can tell casting to concrete Cayenne  
queries may only be needed to bind parameters (and you can cast to  
ParameterizedQuery). Hints can be stored inside  
javax.persistence.Query and then returned in a metadata wrapper.
Andrus
This archive was generated by hypermail 2.0.0 : Sat Feb 25 2006 - 00:09:55 EST