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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> wrote:
>>>> 
>>>> Hi Andrus,
>>>> 
>>>>> On 15. ágú. 2016, at 06:30, Andrus Adamchik <[email protected]> 
>>>>> 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
>>> 
>> 
> 

Reply via email to