2017-08-27 176 views
0

我正在使用DBFlow在Android中管理我的數據庫。我試圖刪除基於查詢的記錄。當我執行下面的代碼時,我沒有收到錯誤,但記錄仍然存在。DBFlow - 無法刪除數據

我所做的任何明顯錯誤?

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(); 

回答

1

您正在從數據庫獲取數據到RAM然後從RAM中刪除。它不會從實際的數據庫中刪除。

試試這個

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

實用指南鏈接, DBFlow

希望這有助於。 :)

+0

謝謝!我幾乎放棄了DBFlow ...我只是沒有考慮db和RAM。 – ArdenDev