package io.ebean.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

Enables you to specify a value to use to persist for an enum value.

public enum Status {
  @EnumValue("N")
  NEW,
  @EnumValue("A")
  ACTIVE,
  @EnumValue("I")
  INACTIVE,
 }

This is an alternative to using the JPA standard approach or Ebean's DbEnumValue annotation.

Note that if all the EnumValue values are parsable as Integers then Ebean will persist and fetch them as integers - otherwise they will be persisted and fetched as strings.

/** * Enables you to specify a value to use to persist for an enum value. * <pre>{@code * * public enum Status { * * @EnumValue("N") * NEW, * * @EnumValue("A") * ACTIVE, * * @EnumValue("I") * INACTIVE, * } * * }</pre> * <p> * This is an alternative to using the JPA standard approach or Ebean's * {@link DbEnumValue} annotation. * </p> * <p> * Note that if all the EnumValue values are parsable as Integers then Ebean * will persist and fetch them as integers - otherwise they will be persisted * and fetched as strings. * </p> */
@Target({ElementType.FIELD}) @Retention(RetentionPolicy.RUNTIME) public @interface EnumValue {
Specify the value to persist for a specific enum value.

If all the values are parsable as Integers then Ebean will persist and fetch them as integers rather than strings.

/** * Specify the value to persist for a specific enum value. * <p> * If all the values are parsable as Integers then Ebean will persist and * fetch them as integers rather than strings. * </p> */
String value(); }