android ormlite - 存储字符串数组

时间:2013-12-03 13:42:06

标签: android arrays string ormlite

我想坚持一个包含String数组的类。 如何在ormlite中做到这一点? 例如,

class A {
    int age;
    String[] childrenNames = new String[2];
}

3 个答案:

答案 0 :(得分:10)

首先创建Serializable类。 您可以选择通过注释在类顶部添加表名。

然后对于变量,您必须添加数据库字段注释。对于字符串数组,您还必须将其注释为Serializable数据类型。 你会得到这样的东西:

@DatabaseTable(tableName = "A")
Class A implements Serializable{

    @DatabaseField
    int age

    @DatabaseField(dataType = DataType.SERIALIZABLE)
    String[] childrenNames = new String[2];
}

也不要忘记为每个变量创建getter和setter。

答案 1 :(得分:3)

  

我想坚持一个包含String数组的类。如何在ormlite中做到这一点?例如,

您肯定可以将其存储为序列化流。

但是,更好的方法是使用ForeignCollection。 ORMLite不会像其他ORM库那样支持数组。也许它应该。与此同时,以下是为您的孩子设置另一个表名的文档:

  

http://ormlite.com/docs/foreign-collection

一张表适用于A。另一个表格是ChildrenName。每个ChildrenName实体都有一个A的外地字段,可以显示每个名称对应的A

答案 2 :(得分:1)

@Gray告诉todo更好的方式。

@ForeignCollectionField(eager = false)     ForeignCollection订单;

来自docs: 在上面的示例中,@ ForeignCollectionField注释标记订单字段是与帐户匹配的订单的集合。

订单的字段类型必须是ForeignCollection或Collection - 不支持其他集合,因为它们比许多支持的方法要重得多。