cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Hugi Thordarson <h...@karlmenn.is>
Subject Re: EJBQL: Arithmetic operations
Date Mon, 15 Aug 2016 18:53:56 GMT
I’m not quite getting this to work… In this case I have a list of Receipts linked to Shops,
and I want to select the shop IDs (simplified example). If I try:

select db:r.shop_id from Receipt r

I’ll receive an error that “shop_id” is an invalid path component.




> On 15. ágú. 2016, at 17:18, Andrus Adamchik <andrus@objectstyle.org> wrote:
> 
>> One last question: Can I use db:-paths in EJBQL queries?
> 
> Yes, db path should be supported everywhere. 
> 
>> Particularly, I’m attempting to use FK-columns (that aren’t exposed in the ObjEntity)
in my queries, perhaps there’s another way?
> 
> 
> If possible, use a relationship name instead of FK. E.g. 
> 
>  "SELECT p FROM Painting p WHERE p.artist = 1"
> 
> but if not, db path is an option.
> 
> Andrus
> 
> 
>> On Aug 15, 2016, at 7:02 PM, Hugi Thordarson <hugi@karlmenn.is> wrote:
>> 
>> Thanks for this Andrus. One last question: Can I use db:-paths in EJBQL queries?
Particularly, I’m attempting to use FK-columns (that aren’t exposed in the ObjEntity)
in my queries, perhaps there’s another way?
>> 
>> Cheers,
>> - hugi
>> 
>> 
>> 
>>> On 15. ágú. 2016, at 15:31, Andrus Adamchik <andrus@objectstyle.org>
wrote:
>>> 
>>> Ah yeah, now checking the code I am starting to remember. Arithmetic expressions
are not allowed in SELECT clause, only in WHERE. There's no real reason for it other then
us initially basing EJBQL parser on some early JPA spec that probably didn't support it. We
need to add it to the parser. For now it won't work.
>>> 
>>> Andrus
>>> 
>>> 
>>>> On Aug 15, 2016, at 5:49 PM, Hugi Thordarson <hugi@karlmenn.is> wrote:
>>>> 
>>>> Hi Andrus,
>>>> 
>>>>> On 15. ágú. 2016, at 06:30, Andrus Adamchik <andrus@objectstyle.org>
wrote:
>>>>> 
>>>>> Hi Hugi,
>>>>> 
>>>>> Sorry for delayed reply. I swear we had the BNF for EJBQL in the docs,
but apparently we don't. Here is the closest thing to it - a JavaCC grammar:
>>>>> 
>>>>> https://github.com/apache/cayenne/blob/master/cayenne-server/src/main/jjtree/org/apache/cayenne/ejbql/EJBQLParser.jjt
>>>>> 
>>>>> We do support simple arithmetic operations. Search for 'arithmetic_'
clauses in the .jjt.
>>>> 
>>>> I’m not as smart as you think—I haven’t touched JavaCC grammar before,
though I could figure it out but I don’t see how to do this :). Can you tell me how I can
do something equivalent to “select e.price*e.quantity from Entry e”?
>>>> 
>>>> Cheers,
>>>> - hugi
>>> 
>> 
> 


Mime
View raw message