1

我正在使用 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();
4

1 回答 1

2

您正在从 db 获取数据到 RAM,然后从 RAM 中删除。它不会从实际数据库中删除。

尝试这个

SQLite.delete(Person.class)
.where(query)
.async()
.execute();

DBFlow的有用指南链接

希望这有帮助。:)

于 2017-09-05T11:05:44.173 回答