предотвращение дублирования вставок таблицы с помощью JDO в Android подключенном appengine

1

Я хотел бы знать, как предотвратить дублирование вставок при вызове RPC от клиента Android, подключенного к движку приложения. Ниже мой код и то, что я пытался в фоновом режиме, но когда я это делаю, я получаю "Внутреннюю ошибку сервера".

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 Когда вы редактируете сообщение, убедитесь, что вы исправили все сообщение, включая форматирование кода (во многих случаях можно использовать jsbeautifier.com ), удаление приветствий / подписей и удаление разговорных слов.
  • 0
    @SachinaD..okSachinaD..ok спасибо
Показать ещё 2 комментария
Теги:
google-app-engine

1 ответ

0

Несколько потенциальных проблем, которые я вижу. Сначала вы также должны проверить, что ваш список не равен нулю. Если он равен нулю, ваша попытка получить доступ к размеру приведет к исключению нулевого указателя. Во-вторых, в вашей строке запроса удалите double equals. Тебе нужны только одиночные равные. А во-вторых, добавьте пробелы в конец и начинания ваших строковых литералов. Вы создаете недопустимую строку. Например, "выберите из". И, наконец, вам не нужно обертывать e.getCCNumber() в строковых литералах.

Query q = pm.newQuery("select from " + userentity.class + " where Country= " + e.getCCNumber());

Ещё вопросы

Сообщество Overcoder
Наверх
Меню