users@jpa-spec.java.net

[jpa-spec users] Re: Map Enum to Coded Values and Converters

From: Andrew Ward <andreww100_at_gmail.com>
Date: Thu, 8 Mar 2012 20:57:14 +0000

Hi

Will it be possible to use the proposed AttributeConverter class to address the limitation with Enums below? I was hoping this class would enable the selection of a custom enum attribute when persisting, without using the proprietary extensions in EclipseLink and Hibernate.

Section 3.7 of the updated spec indicates that @Enumerated will be excluded, which would be a shame.

Thanks
Andrew

On 27 Dec 2011, at 21:57, Andrew Ward <andreww100_at_gmail.com> wrote:

> Hi Expert Group
>
> The current JPA spec provides @Enumerated, with EnumType being limited to ORDINAL and STRING.
>
> ORDINAL is not good long term, as enumerations may be expanded, and ordinal positions will change if new literals are inserted. Seems too brittle.
> STRING is better than ORDINAL, but creates a conflict between the desire for short codes in the database, and meaningful literal names.
>
> What users really want is the ability to map an enum literal to a code (a short string, or number).
>
> The design problem you have, is how to best specify the custom enum attribute to be used as the code.
>
> EclipseLink and Hibernate understand this requirement, and provide proprietary solutions.
>
> http://wiki.eclipse.org/EclipseLink/Examples/JPA/EnumToCode
>
> http://stackoverflow.com/questions/2751733/map-enum-in-jpa-with-fixed-values
>
> Is there any chance of standardising this in JPA 2.1?
>
> Thanks
>
> Andrew Ward