我在Android上使用ORMLite,我有一个具有两个String属性的实体(每个属性都存储在数据库中),对于迁移,我的实体已经更改,并且2个字段已合并到List中。我该如何处理这种迁移?
迁移前的实体:
@DatabaseTable
public class MyEntity
{
@DatabaseField(generatedId = true)
private int id;
@DatabaseField
private String att1;
@DatabaseField
private String att2;
}
迁移后的实体:
@DatabaseTable
public class MyEntity
{
@DatabaseField(generatedId = true)
private int id;
@DatabaseField(dataType = DataType.SERIALIZABLE)
private ArrayList<String> list;
}
我已经查看了数据库的结构,在迁移之前att1和att2是VARCHAR,并且在迁移列表之后是BLOB类型。我正在使用扩展OrmLiteSqliteOpenHelper的类来进行迁移,但我不知道如何在新迁移的数据库的list列中传递att1和att2的值。
答案 0 :(得分:0)
哇,这很难做到。您将不得不阅读每个实体,从...迁移我的实体已更改且2个字段已合并到List中。我该如何处理这种迁移?
list
和att1
创建att2
字段,然后调用dao.update(...)
以使用列表BLOB字段保存每个实体
类似的东西:
for (MyEntity entity : dao.queryForAll()) {
List<String> list = new ArrayList<>();
if (add1 != null) {
list.add(add1);
}
if (add2 != null) {
list.add(add2);
}
entity.setList(list);
dao.update(entity);
}