我希望将所有对象ReportDB保存为DB
中的新行 App.get(context)
.getStorIO()
.put()
.object(new ReportDB(keyStore.getKeyCategoryId(), keyStore.getKeyShelfId()))
.prepare()
.asRxObservable().subscribe(putResult -> ZLog.d("insertedId = "+putResult.insertedId()),
throwable -> ZLog.d("throwable = ",throwable));
ReportDB是
@StorIOSQLiteColumn(name = ReportTable.COLUMN_ID,key = true)
long id;
@StorIOSQLiteColumn(name = ReportTable.CATEGORY_ID_I)
long categoryId;
@StorIOSQLiteColumn(name = ReportTable.SHELF_ID_I)
long shelfId;
@StorIOSQLiteColumn(name = ReportTable.LATITUDE_R)
double latitude;
@StorIOSQLiteColumn(name = ReportTable.LONGITUDE_R)
double longitude;
public ReportDB(long categoryId, long shelfId) {
this.categoryId = categoryId;
this.shelfId = shelfId;
}
但是现在,在运行代码两次后,我只有一行并记录
insertedId = 0
insertedId = null
如何自动增加ID?
答案 0 :(得分:1)
StorIO不会为您管理表架构,它只是绑定到现有数据库并使用它,因此您有两种方法可以实现自动增量列:
INTEGER NOT NULL PRIMARY KEY
PutResolver
中自行提升自己(不要忘记将此代码包装到交易中!)我建议使用第一个选项,因为它的工作速度更快,而且您不必编写任何代码 - >更难犯错误:))