2016-05-12 5 views
-3

こんにちは、マイグレーション前にパーズテーブルをきれいにしたい。問題は、ユーザーテーブルへのポインタを持つテーブルがありますが、関連ユーザーは既に削除されています。 だから私は私は私は、Java で、このためのいくつかのコードを書かれているこの のために任意のデフォルトの方法を見つけることができませんmは、このデータを事前自己ホスト型サーバーへの移行前にデータをクリーンアップする

+0

これは可能ではありませんが...あなたは、ユーザーを削除すると、自動的に解析し、そのユーザーへのすべてのポインタを削除します.... –

+0

これは私の場合には発生しません、私が持つ他のテーブル内のデータを持っていますユーザーへのポインタだが、同じユーザーが存在しない – Dan

答えて

0

感謝を削除役立つ機能が役に立つかもしれたいですあなたに

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

別の方法も有用

ます。public void DataCleanUp(文字列USERID) { Log.d( "TaDeleted"、 "inside"); String [] tableCloumn = {"ユーザーポインタ1"、 "ユーザーポインタ2" ..}; String [] tableArray = {"解析クラス名1"、 "解析クラス名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(); 
} 
関連する問題