在ormlite android中使用DataType.SERIALIZABLE存储对象列表

时间:2013-07-17 05:03:55

标签: android ormlite

如何在android我的模型中使用ORMlite保存ArrayList如下

class Model{
    @DatabaseField
    public String type = "";

    @DatabaseField
    public String name = "";

    @DatabaseField
    public Date dateTime = null;

    @DatabaseField
    ArrayList<Item> items = null;
}

而且Item类有

class Item{
     @DatabaseField
     String itemName;
     ...
}

我收到以下异常:

java.sql.SQLException: ORMLite can't store unknown class class
      java.util.ArrayList for field 'items'.   Serializable fields must specify
      dataType=DataType.SERIALIZABLE

但是当我将我的字段指定为

@DatabaseField(dataType = DataType.SERIALIZABLE)
ArrayList<Item> items = null;

编译器给出一个名为field的错误,无法解决,请帮我解决。

1 个答案:

答案 0 :(得分:6)

我刚刚将错误消息更改为:

  

ORMLite不知道如何存储类         字段'items'的java.util.ArrayList。使用另一个类,自定义持久性或使用dataType = DataType.SERIALIZABLE

序列化它

也许这更有意义? ORMLite试图说它不知道如何在一个字段中存储列表。如果您想存储项目集合,那么您应该查看foreign-collection documentation