Ich versuche, die folgende Klasse mit OrmLite bestehen bleiben:Ist es möglich, ein Enum-Feld in einer Klasse mit OrmLite beibehalten?
public class Field {
@DatabaseField(id = true)
public String name;
@DatabaseField(canBeNull = false)
public FieldType type;
...
}
Die FieldType
ist ein public enum
. Das Feld, das dem type
entspricht, ist eine Zeichenfolge in SQLite (es unterstützt keine enums). Wenn ich versuche, es zu verwenden, erhalte ich die folgende Ausnahme:
INFO [main] (SingleConnectionDataSource.java:244) - Established shared JDBC Connection: [email protected]
Exception in thread "main" org.springframework.beans.factory.BeanInitializationException: Initialization of DAO failed; nested exception is java.lang.IllegalArgumentException: Unknown field class class enums.FieldType for field FieldType:name=type,class=class orm.Field
at org.springframework.dao.support.DaoSupport.afterPropertiesSet(DaoSupport.java:51)
at orm.FieldDAO.getInstance(FieldDAO.java:17)
at orm.Field.fromString(Field.java:23)
at orm.Field.main(Field.java:38)
Caused by: java.lang.IllegalArgumentException: Unknown field class class enums.FieldType for field FieldType:name=type,class=class orm.Field
at com.j256.ormlite.field.FieldType.<init>(FieldType.java:54)
at com.j256.ormlite.field.FieldType.createFieldType(FieldType.java:381)
at com.j256.ormlite.table.DatabaseTableConfig.fromClass(DatabaseTableConfig.java:82)
at com.j256.ormlite.dao.BaseJdbcDao.initDao(BaseJdbcDao.java:116)
at org.springframework.dao.support.DaoSupport.afterPropertiesSet(DaoSupport.java:48)
... 3 more
Wie kann ich feststellen, OrmLite, Werte auf der Java-Seite sind von einem enum
?
Danke, Sie machen gute Arbeit, sowieso denken Sie, es wäre besser, Sie über das Formular oder diese Seite zu kontaktieren? Ich schätze, Letzteres könnte Ihre Zeit sparen, wenn Leute nach dem suchen, was sie zuerst wollen. – htf
Warum wird ENUM_INTEGER empfohlen? Sicherlich ändert sich der Name des Enum-Eintrags weniger als die Reihenfolge oder Anzahl der Einträge. – pablisco
Es wird nicht empfohlen. Hast du die Antwort @pablisco gelesen? – Gray