防止在android连接的appengine中使用jdo重复表插入

时间:2012-03-18 08:46:06

标签: android google-app-engine

我想知道在连接到app引擎的Android客户端进行RPC调用时如何防止重复插入。下面是我的代码以及我在后端尝试的内容,但是当我这样做时,我收到“内部服务器错误”。

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 :(得分:0)

我看到的几个潜在问题。首先,您还应该检查您的列表是否为空。如果它为null,则尝试访问该大小将导致空指针异常。其次,在您的查询字符串中删除double equals。你只需要单身等于。其次,在字符串文字的末尾和开头添加一个空格。你正在创建一个无效的字符串。例如,“从中选择”。最后,您不需要将e.getCCNumber()包装在字符串文字中。

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