I'm getting this error on ORM Lite when creating table ActivityLog :
10-23 04:06:32.255: E/com.timelord.dao.DatabaseHelper(1487):
Caused by: java.sql.SQLException: ORMLite can't store unknown class class
com.timelord.pojo.Category for field 'category'. Serializable fields must
specify dataType=DataType.SERIALIZABLE
I suspected that this is caused by the multi level foreign key. As you can see from the POJO class below, ActivityLog has Activity, and Activity has Category.
Activity and Category are working fine.
Any idea of how to do the correct mapping?
@DatabaseTable(tableName = "activityLogs")
public class AcitvityLog implements Serializable {
private static final long serialVersionUID = 1L;
@DatabaseField(generatedId = true)
private int id;
@DatabaseField(canBeNull = false)
@DatabaseFieldForeign(foreign = true)
private Activity activity;
@DatabaseField(dataType = DataType.DATE, canBeNull = false)
private Timestamp start;
@DatabaseField(dataType = DataType.DATE, canBeNull = true)
private Timestamp end;
}
@DatabaseTable(tableName = "activities")
public class Activity extends BaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
@DatabaseField(canBeNull = false)
@DatabaseFieldForeign(foreign = true)
private Category category;
}
@DatabaseTable(tableName = "categories")
public class Category extends BaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
}
public class BaseEntity {
@DatabaseField(generatedId = true)
private Integer id;
@DatabaseField(canBeNull = false)
private String name;
}