2012-07-10 143 views
0

我试图将数据存储在谷歌应用程序引擎数据存储后,检查手机号码是否存在,但代码总是显示“失败”,即使手机号码是在数据库中。它显示了失败,但仍然存储在数据存储 数据请在这里检查代码,请让我知道什么是错误,我正在做谷歌应用程序引擎数据存储工作奇怪

String name= request.getParameter("name"); 
String email=request.getParameter("email"); 
String mobileno= request.getParameter("mobileno"); 
String password= request.getParameter("passwd"); 
String status=""; 
// 
Query query = new Query("dailyquizuser"); 
    query.addFilter("mobileno", Query.FilterOperator.EQUAL, mobileno); 
    DatastoreService datastore = DatastoreServiceFactory.getDatastoreService(); 
    PreparedQuery pq = datastore.prepare(query); 
    Entity dailyquizuserentity = pq.asSingleEntity(); 

    out.println("dailyquizuserentity: " + dailyquizuserentity); 
    if(dailyquizuserentity != null){ 
     status="failure"; 
     out.println(status); 


    } else { 
     Key dailyquizuserKey = KeyFactory.createKey("dailyquizuser", "dailyquiz"); 
     Entity dailyquizuser = new Entity("dailyquizuser", dailyquizuserKey); 
     dailyquizuser.setProperty("name", name); 
     dailyquizuser.setProperty("email", email); 
     dailyquizuser.setProperty("mobileno", mobileno); 
     dailyquizuser.setProperty("password", password); 

     DatastoreService datastore1 = DatastoreServiceFactory.getDatastoreService(); 
     datastore1.put(dailyquizuser); 
     out.println("dailyquizuser: " + dailyquizuser); 
     status="success"; 
     out.println(status); 

    } 


    %> 

回答

0

的几个注意事项:

  1. 你应该检查mobileno变量不是null(与所有其他所需参数相同)。这可以解释为什么你总是找到一个实体 - null是一个有效的属性值。使用null查询过滤器将查找具有null属性的实体,但查询没有属性的实体将无法找到它。

  2. 您显示的代码创建实体的单亲家庭:

    // a key to a parent 
    Key dailyquizuserKey = KeyFactory.createKey("dailyquizuser", "dailyquiz"); 
    
    // new entity with a parent 
    Entity dailyquizuser = new Entity("dailyquizuser", dailyquizuserKey); 
    

    所以对于“dailyquizuser”进行搜索时,你应该考虑使用祖先查询。

  3. addQuery(..)已弃用。改为使用setQuery()

相关问题