openjpa-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Kevin Sutter <kwsut...@gmail.com>
Subject Re: Inner enum cannot be used as literal in JPQL
Date Mon, 06 Jan 2014 15:19:46 GMT
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@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.
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message