我的数据库出了问题。我正在从具有特定ID的API下载数据。我希望这些ID保留在我的数据库中,以便将来可以在应用程序中使用它们。我在文档中读到我应该添加allowGeneratedIdInsert = true
但是它不起作用 - 我仍然得到0,1,等等在数据库中作为dao.create(...)
之后的ID。你能检查一下我的代码并告诉我我做错了吗?
这是我的模特:
@DatabaseField(id = true, columnName = "id", allowGeneratedIdInsert = true)
private int id;
创建记录:
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked) {
try {
final Dao<Concert, Integer> concertDao = getHelper().getConcertDao();
concertDao.create(concertList.get(position));
} catch (SQLException e) {
e.printStackTrace();
}
}
}
答案 0 :(得分:1)
来自documentation for allowGeneratedIdInsert
:
仅当数据库支持此行为并且该字段的
generatedId()
也为真时才有效。
默认情况下,generatedId
为false
。
@DatabaseField(columnName = "id", generatedId = true, allowGeneratedIdInsert = true)
private int id;
另外,您可以阅读:
如果该字段为null或0,则将生成id。当您有一个表格,其中项目有时会有ID并且有时需要生成它时,这非常有用。
您确定要进行此操作吗?如果您的ID已经在后端生成,那么您可能不需要allowGeneratedIdInsert
和generatedId
,默认情况下它们都是假的。