java - 如何在 ORMLITE android On Upgrade 方法中添加主键?

标签 java android ormlite

在我的项目中,我使用了 ORMLite。现在我添加了一个主键 tje accountId 字段,并且还更改了数据库版本。请帮助我,我不知道如何在 onUpgrade(...) 中编写查询。供引用我 在下面附加了 Account 类。

public class Account implements Serializable {
    @DatabaseField
    private String cdate;

    @DatabaseField(id=true)
    private Integer accountId;

    @DatabaseField
    private String Type;

    @DatabaseField
    private String Desc;

    @DatabaseField
    private String UpdatedDate;
}

最佳答案

I don't know how to write query in onUpgrade(...).

诀窍是弄清楚您需要执行哪些 Sqlite 命令来添加主键。您可以通过查看 Sqlite docs for the primary key 来解决这个问题.在那里你可以看到你的 accountId 字段应该被定义为:

accountId INTEGER PRIMARY KEY ASC

那么你的 onUpdate(...) 方法应该是这样的:

if (version of db is the old-version) {
    dao.executeRaw("ALTER TABLE account ADD COLUMN accountId INTEGER PRIMARY KEY ASC;");
}

您应该根据旧版本的数据库有条件地执行此操作。

关于java - 如何在 ORMLITE android On Upgrade 方法中添加主键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33666468/

相关文章:

android - 更改列名称?

Java任务在网格上的分配和收集

Java httpPost 未正确发布数据(Apache 库)?

android - 无法使用 ContentProvoider 更新联系人

java - 在 Android 中使用 ORMLite 持久化 ArrayList<String>

java - 在 ORMLite 中为一个类创建多个表

java - JDBC Oracle Thin ORA-02396 连接空闲超时

java - 按字符串中的值对字符串数组进行排序

android - 在不同布局的按钮上调用 onClick

android - java.lang.noclassdefounderror : org. ksoap2.serialization.SoapObject