> 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