Ah.. Of course! I should have known better. The standard Java "inner class"
notation with $ does the trick.

Thanks Rick!


Rick Curtis wrote
> Try to change your query to : select f from Foo f where f.type =
> com.myorg.jpa.Foo$FooType.BAR
> 
> Thanks,
> Rick
> 
> 
> On Mon, Jan 6, 2014 at 9:19 AM, Kevin Sutter <

> kwsutter@

> > wrote:
> 
>> The use of a qualified enum value should be valid for JPQL.  But, the
>> spec
>> doesn't seem to specify whether the enum type needs to be in it's own
>> file
>> or not.  I've looked through the spec and some references and they all
>> seem
>> to assume that these enums are defined in it's file and not embedded
>> within
>> the Entity definition.
>>
>> I'd be hard pressed to consider this a bug.  Maybe a feature request, but
>> not a bug.  As you mentioned, if you define this enum separately,
>> everything works as expected, right?  Is there some reason why that
>> approach can't be done?
>>
>> Kevin
>>
>>
>>
>> On Sat, Jan 4, 2014 at 4:50 PM, twelveeighty <

> twelve.eighty@

> > >wrote:
>>
>> > Can someone confirm whether or not this is a known issue, or if this is
>> a
>> > known limitation?
>> > When I define an  enum as part of my entity class, I am not able to use
>> its
>> > values as literals in a JPQL statement:
>> >
>> > package com.myorg.jpa;
>> > public Foo {
>> >         public enum FooType { FOO, BAR }
>> >         @Enumerated(EnumType.STRING)
>> >         private FooType type;
>> > }
>> >
>> > select f from Foo f where f.type = com.myorg.jpa.Foo.FooType.BAR
>> >
>> > Error message: Attempt to query field "com.myorg.jpa.Foo.FooType.BAR"
>> from
>> > non-entity variable "com". Perhaps you forgot to prefix the path in
>> > question
>> > with an identification variable from your FROM clause?
>> >
>> > My version: OpenJPA 2.3.0-nonfinal-1540826
>> >
>> > However, if I take FooType and define it as its own Enum class
>> > (com.myorg.jpa.FooType) the literal com.myorg.jpa.FooType.BAR works as
>> > expected.
>> >
>> > Should I log a bug for this?
>> >
>> >
>> >
>> >
>> > --
>> > View this message in context:
>> >
>> http://openjpa.208410.n2.nabble.com/Inner-enum-cannot-be-used-as-literal-in-JPQL-tp7585806.html
>> > Sent from the OpenJPA Users mailing list archive at Nabble.com.
>> >
>>
> 
> 
> 
> -- 
> *Rick Curtis*





--
View this message in context: 
http://openjpa.208410.n2.nabble.com/Inner-enum-cannot-be-used-as-literal-in-JPQL-tp7585806p7585811.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.

Reply via email to