2012-03-18 8 views
1

アプリエンジンに接続されたAndroidクライアントからRPC呼び出しを行う際に重複挿入を防止する方法を知りたいと思います。以下は私のコードと私がバックエンドで試したものですが、私がこれを行うと "内部サーバーエラー"が発生します。アンドロイド接続されたappengineのjdoを使用して重複したテーブル挿入を防止する

public void createentity(userentity e) { 
    PersistenceManager pm = PMF.get().getPersistenceManager(); 
    //to go through the records and and check for duplicates 
    Query q = pm.newQuery("select from" + userentity.class + "where Country=='" + e.getCCNumber() + "'"); 
    List <userentity> s = (List <userentity>) q.execute(); 
    //if the size is equal to to null means there is no duplicate 
    if (s.size() == 0) { 
     //insert the value 
     try { 
      pm.makePersistent(e); 
     } finally { 
      pm.close(); 
     } 
    } 
} 
+0

@SachinDかっこいい言葉 –

+0

@ SachinaD..ok thanks –

+0

別のコメントに返信するときは、正しい名前に返信してください;)この場合、 '@ Rob'または' @ RobW'を使用してください。詳細については、[メタ:回答のコメントの仕組み](http://meta.stackexchange.com/questions/43019/how-do-comment-replies-work)を参照してください。 *あなたの投稿の前編集者に返信して、編集方法を教えてください。* –

答えて

0

2つの潜在的な問題があります。まず、あなたのリストがnullでないことを確認する必要があります。 nullの場合、サイズにアクセスしようとするとnullポインタ例外が発生します。第二に、クエリ文字列でdouble equalsを削除します。あなたはただ一つの等価が必要です。第2に、文字列リテラルの最後と最後にスペースを追加します。無効な文字列を作成しています。たとえば、「から選択」。最後に、e.getCCNumber()を文字列リテラルにラップする必要はありません。あなたが投稿を編集すると、書式設定コード(http://jsbeautifier.comは、多くの場合、使用することができます)、挨拶/署名の除去、および除去を含む、あなたが全体のポストを固定していることを確認してください

Query q = pm.newQuery("select from " + userentity.class + " where Country= " + e.getCCNumber()); 
関連する問題