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 <kwsut...@gmail.com> 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.eig...@gmail.com > >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*