предотвращение дублирования вставок таблицы с помощью JDO в Android подключенном appengine - PullRequest
1 голос
/ 18 марта 2012

Я хотел бы знать, как предотвратить повторяющиеся вставки при выполнении вызова 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();
        }
    }
}

1 Ответ

0 голосов
/ 19 марта 2012

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

Query q = pm.newQuery("select from " + userentity.class + " where Country= " + e.getCCNumber());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...