Ebeanでモデルのフィールドにenumを利用する場合

Ebeanでモデルのフィールドにenumを利用する場合、各enum値には、@EnumValueアノテーションを付けると良い。
アノテーションを付けない場合、各enum値はDB上では数値の連番として保持されるが、アジャイル開発等ではenumの各値の順番が入れ替わったり、追加削除などの変更も多いため連番は扱いづらい。その場合にこのアノテーションを利用すると、各enum値をDB上でどのような値として保持するかを設定できる。

public enum SomeStatus {

    @EnumValue("processing")
    PROCESSING,

    @EnumValue("success")
    SUCCESS,

    @EnumValue("error")
    ERROR;
}

またこのアノテーションの属性として設定する値によって、生成されるSQLのカラムの型・桁数が最適なものに変化する。

上記の例だと、MySQLの場合DB上の型はvarchar(10)となり、下記の例だと、integerとなる。

public enum SomeStatus {

    @EnumValue("1")
    PROCESSING,

    @EnumValue("23")
    SUCCESS,

    @EnumValue("456")
    ERROR;
}

Ebean参考ページ(https://ebean.io/docs/mapping/)