Java 如何在ORMLITE android的升级方法中添加主键?

Java 如何在ORMLITE android的升级方法中添加主键?,java,android,ormlite,Java,Android,Ormlite,在我的项目中,我使用了ORMLite。现在,我为添加了一个主键 tjeaccountId字段,并且还更改了数据库版本。请帮助我,我不知道如何在onUpgrade(…)中编写查询。供参考I 在下面附上账户类 public class Account implements Serializable { @DatabaseField private String cdate; @DatabaseField(id=true) private Integer accoun

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

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;
}
我不知道如何在onUpgrade(…)中编写查询

诀窍是找出需要执行哪些Sqlite命令来添加主键。你可以通过查看。在这里,您可以看到您的
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;");
}

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

是否可以
accountId
be
null
?如果不是,则应为
int
。谢谢您的回答。我已经添加了accountId列,只需要单独添加主键。但我通过创建新表并从旧表复制到新表来修复它。