Вы не упомянули, используете ли вы Java или .Net, но я дам вам решение, которое я нашел для .Net, и вы сможете перевести его на Java, если это будет необходимо. Я нашел пост, в котором предлагается использовать универсальный тип, который позволяет объявлять перечисление как поле в таблице как текст, чтобы вы могли видеть имя значения в таблице.
Нажми меня!
Я немного изменил свой, чтобы ограничить длину столбца.
/// <summary>
/// This class allows enums to be stored as a string in the database
/// </summary>
/// <typeparam name="T">The Enum Type</typeparam>
public class EnumMapper<T> : EnumStringType
{
/// <summary>
/// The default constructor which defines that the maximum length of
/// an enum string column in the datbase is 30 characters.
/// </summary>
public EnumMapper() : base(typeof(T), 30)
{
}
}
Это отлично сработало для меня несколькими способами. Если вы измените порядок элементов в перечислении, он все еще будет работать, и это также означает, что вы можете увидеть, что означает значение в БД, упрощая написание специальных запросов! :)