Annotation Type DbEnumValue


@Retention(RUNTIME) @Target(METHOD) public @interface DbEnumValue
Specify a method on an Enum that returns the value that should be stored in the DB.

This is the preferred option for mapping Enum's to DB values (preferred over the JPA standard @Enumerated and Ebean's @EnumValue annotations).

Example:



   public enum Status {
     NEW("N"),
     ACTIVE("A"),
     INACTIVE("I");

     String dbValue;
     Status(String dbValue) {
       this.dbValue = dbValue;
     }

     @DbEnumValue
     public String getValue() {
       return dbValue;
     }
   }

 
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    int
    The column length for VARCHAR.
    Specify the database type used to store the values (VARCHAR or INTEGER).
    boolean
    When true DDL should generate a database constraint for the enum values.
  • Element Details

    • storage

      DbEnumType storage
      Specify the database type used to store the values (VARCHAR or INTEGER).
      Default:
      VARCHAR
    • length

      int length
      The column length for VARCHAR.

      When 0 the length is determined automatically based on the maximum length of the values used.

      Specify this to allow for future string enum values that might be larger then the automatically determined maximum length.

      Default:
      0
    • withConstraint

      boolean withConstraint
      When true DDL should generate a database constraint for the enum values.
      Default:
      true