gpt4 book ai didi

android - 更改表列无法使用 Greendao-Android 访问

转载 作者:行者123 更新时间:2023-11-30 01:44:20 25 4
gpt4 key购买 nike

在 SQLiteOpenHelper 中使用 onUpgrade,我可以更改表并添加具有默认值的新列名。

但是当我在 Activity 中访问那个特定的表时,它只显示旧的列数。根据更改,它应该显示 4(列数)。但它只显示 3。

我在 onUpgrade 方法中的代码:

 db.execSQL("ALTER TABLE " + MyTableDaoDao.TABLENAME + " ADD COLUMN 'VRESION_NO' INTEGER NOT NULL DEFAULT '11';");

//因为我确定该表已更改,因为当我尝试使用相同的列名再次更改它时,它显示重复的列名 sqlite 异常。

获取所有列数:

 daoSession.getMyTableDao().getAllColumns().length  // returns old table count

如何在 GreenDAO 中获取刷新表的详细信息?。有没有人遇到过这种情况。

提前致谢。

最佳答案

可能您忘记了从更新的架构中重新创建您的 Dao 代码。

Greendao 不使用反射或扫描数据库来创建数据库和 java 之间的映射。此映射由 dao 生成器创建。所以如果你想更新你的数据库模式有两个任务:

  1. 通过使用新模式重新创建它们来更新实体类和 daos 并增加模式版本。
  2. 在您的应用程序中实现您的更新策略,即删除所有表并重新创建它们或添加/更改/删除自之前处于 Activity 状态的模式版本以来发生变化的列/表/索引/...(请参阅我的回答herehere )。

关于android - 更改表列无法使用 Greendao-Android 访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33950824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com