Specifies that a persistent property or field should be persisted
as an enumerated type. This annotation is optional if the type of
a persistent field or property is a Java
enum
type.
The Enumerated
annotation may be used in conjunction
with the Basic
annotation, or in conjunction with the
ElementCollection
annotation when the element type of the
collection is an enum type.
An enum can be mapped as either a string or an integer, where
EnumType
enumerates the available options. The mapping
may be explicitly specified by this annotation.
If a persistent field or property of enum type has no explicit
Enumerated
annotation, and if no converter is applied to
the field or property:
- if the enum type has a final field of type
String
annotatedEnumeratedValue
, the enumerated type is inferred to beEnumType.STRING
; - otherwise, the enumerated type is taken to be
EnumType.ORDINAL
.
Example:
public enum EmployeeStatus {FULL_TIME, PART_TIME, CONTRACT}
public enum SalaryRate {JUNIOR, SENIOR, MANAGER, EXECUTIVE}
@Entity
public class Employee {
public EmployeeStatus getStatus() { ... }
...
@Enumerated(STRING)
public SalaryRate getPayScale() { ... }
...
}
- Since:
- 1.0
- See Also:
-
Optional Element Summary
-
Element Details
-
value
EnumType value(Optional) The type used in mapping an enum type.- Default:
ORDINAL
-