我使用DBFlow在Android中管理我的数据库。我试图根据查询删除记录。当我执行以下代码时,我没有收到错误,但记录仍然存在。
我做错了什么?
SQLite.select()
.from(Person.class)
.where(query)
.async()
.querySingleResultCallback(new QueryTransaction.QueryResultSingleCallback<Person>() {
@Override
public void onSingleQueryResult(QueryTransaction transaction, @Nullable Person person) {
person.delete();
}
})
.error(new Transaction.Error() {
@Override
public void onError(Transaction transaction, Throwable error) {
Exception ex = new Exception(error);
callback.onError(ex);
}
})
.success(new Transaction.Success() {
@Override
public void onSuccess(@NonNull Transaction transaction) {
callback.onSuccess();
}
})
.execute();
答案 0 :(得分:1)
您正在从db获取数据到RAM然后从RAM中删除。它不会从实际数据库中删除。
试试这个
SQLite.delete(Person.class)
.where(query)
.async()
.execute();
有用的指南链接 DBFlow
希望这有帮助。 :)