2016-05-12 74 views
-3

嗨我想在遷移之前清理我的分析表。問題是我有表有一個指向用戶表的指針,但相關用戶已被刪除。 所以我想一個函數,它會幫我刪除這些數據在遷移到自託管服務器之前解析數據清除

在此先感謝

+0

這應該是不可能的......當你刪除一個用戶,自動解析刪除所有指向該用戶.... –

+0

這並不在我的情況發生,我在具有其它表中的數據指向用戶的指針,但不存在相同的用戶 – Dan

回答

0

我不是能夠找出這個 任何默認的方法我已經在Java中 寫了一些代碼,這可能是有幫助你

public void DataCleanUp() 
{ 
    Log.d("TaDeleted","inside"); 
    String[] tableCloumn={"User Pointer Column Names",""}; 
    String[] tableArray={"Class Names Here ",""}; 



     for(int i=0;i<tableArray.length;i++) 
     { 
      List<ParseObject> objects=null; 
      ParseQuery query=new ParseQuery(tableArray[i]); 
      query.setLimit(1000); 
      query.include(tableCloumn[i]); 
      try { 
       objects= query.find(); 
      } catch (ParseException e) { 
       e.printStackTrace(); 
      } 

      if(objects!=null) 
       if(!objects.isEmpty()) 
       { 
        Log.d("Table To Deleted",""+tableArray[i]); 
        for(int j=0;j<objects.size();j++) 
        { 
         if((ParseUser) objects.get(j).get(tableCloumn[i])==null) 
         { 
          try { 
           objects.get(j).delete(); 
           Log.d("Deleted", "" + objects.get(j).getObjectId()); 
          } catch (ParseException e) { 
           e.printStackTrace(); 
          } 
         } 
        } 
       } 
     } 
    Toast.makeText(getApplicationContext(),"Deleted",Toast.LENGTH_SHORT).show(); 
} 
+0

這是我一直在尋找,謝謝 – Dan

0

另一種方法可以幫助的

公共無效DataCleanUp(字符串userid) { Log.d( 「TaDeleted」, 「內部」); String [] tableCloumn = {「User Pointer 1」,「User Pointer 2」..}; String [] tableArray = {「Parse class Names 1」,「Parse class Names 2」...};

List<ParseUser> user=null; 
    ParseQuery<ParseUser> query1 = ParseUser.getQuery(); 
    query1.whereEqualTo("objectId", userId); 
    try { 
      user=query1.find(); 
    } catch (ParseException e) { 
     e.printStackTrace(); 
    } 
    if(user!=null) 
    for(int i=0;i<tableArray.length;i++) 
    { 
     List<ParseObject> objects=null; 
     ParseQuery query=new ParseQuery(tableArray[i]); 
     //query.whereEqualTo(tableCloumn[i], user.get(0)); 
     query.whereEqualTo(tableCloumn[i], user.get(0)); 
     query.setLimit(1000); 
     try { 
      objects= query.find(); 
     } catch (ParseException e) { 
      e.printStackTrace(); 
     } 

      if(objects!=null) 
       if(!objects.isEmpty()) 
       { 
        Log.d("Table To Deleted",""+tableArray[i]); 
        for(int j=0;j<objects.size();j++) 
        { 
         try { 
          Log.d("Deleted",""+objects.get(j).getObjectId()); 
          objects.get(j).delete(); 
         } catch (ParseException e) { 
          e.printStackTrace(); 
         } 
        } 
       } 
    } 
    Toast.makeText(getApplicationContext(),"Deleted",Toast.LENGTH_SHORT).show(); 
} 
相關問題