JPA Support of Enum as Primary Key

Description

Enums work as primary keys in TopLink and EclipseLink.

DataNucleus supports them, too:

http://www.datanucleus.org/products/accessplatform/jpa/primary_key.html

In the attached testcase, JPA, via persistence.xml, creates a database column type of

VARBINARY. The data contained in it is like:

10101100111011010000000000000101~r0000000000011000main.MyEntity$EntityType0000000000000000000000000000000000000000000000000000000000000000000100100000000000000000xr0000000000001110java.lang.Enum0000000000000000000000000000000000000000000000000000000000000000000100100000000000000000xpt0000000000000110TYPE_1 Type 1

That is not what we need.

We need an integer because in the entity class, we specify

@Enumerated(value = EnumType.ORDINAL)

While Enum as ID field is not specifically supported in the JPA specs, it is not specifically excluded, either.

It would be desirable to have the new version of the spec include this feature, too.

The attached testcase (zip file) runs with NetBeans out of the box.

Environment

java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b07)
Java HotSpot(TM) Client VM (build 17.0-b17, mixed mode, sharing)

Hibernate JPA as installed with latest NetBeans release 6.9.1

Assignee

Unassigned

Reporter

b

Labels

None

Feedback Requested

None

Feedback Requested By

None

backPortable

None

Suitable for new contributors

None

Pull Request

None

backportDecision

None

backportReEvaluate

None

Affects versions

Priority

Critical
Configure