Is it possible to have an enum field in a class persisted with OrmLite?

Posted by htf on Stack Overflow See other posts from Stack Overflow or by htf
Published on 2010-06-15T11:20:31Z Indexed on 2010/06/17 11:13 UTC
Read the original article Hit count: 196

Filed under:
|
|

Hello. I'm trying to persist the following class with OrmLite:

public class Field {
 @DatabaseField(id = true)
 public String name;

 @DatabaseField(canBeNull = false)
 public FieldType type;

 public Field() {

 }
}

The FieldType is a public enum. The field, corresponding to the type is string in SQLite (is doesn't support enums). When I try to use it, I get the following exception:

INFO [main] (SingleConnectionDataSource.java:244) - Established shared JDBC Connection: org.sqlite.Conn@5224ee
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

So how do I tell OrmLite, values on the Java side are from an enum?

© Stack Overflow or respective owner

Related posts about java

Related posts about sqlite