ORMLite может сохранять перечисления либо как имя перечисления VARCHAR
(по умолчанию) :
// this saves it as a string in the database
@DatabaseField
OurEnum ourEnum;
...
private enum OurEnum {
FIRST,
SECOND, ;
}
В качестве альтернативы вы можете сохранить порядковый номер INTEGER
.
// this saves it as an integer in the database
@DatabaseField(dataType = DataType.ENUM_INTEGER)
OurEnum ourEnum;
Несмотря на то, что вы можете сохранить порядковый номер, рекомендуется имя версии VARCHAR
(по умолчанию), поскольку порядковое значение можетизменить, если вы добавляете или удаляете записи из перечисления.
Для обоих типов перечисления вы можете указать unknownEnumName = "..."
поле , которое помогает с прямой и обратной совместимостью.Если база данных содержит неизвестное значение для перечисления, то объект, возвращаемый DAO, будет иметь это значение перечисления.
@DatabaseField(unknownEnumName = "FIRST")
OurEnum ourEnum;