2014-06-30 29 views
0

是“NAME =”为用户类定义如下什么在谷歌App Engine的数据存储键字段

@PersistenceCapable(detachable="true") 
public class User { 
    @PrimaryKey 
    @Persistent 
    private String email; 

    @Persistent 
    private String firstname; 

    @Persistent 
    private String lastname; 

在PROD,我增加了一个用户与电子邮件=“[email protected]” firstname = something,lastname =通过JDO的东西。然后在数据存储查看器中,ID /名称字段的值为“[email protected]为什么添加“名称=”?我的程序找不到key =“[email protected]”的用户。它可以在我的DEV PC中,但从来没有“Name =”。

[添加检索用户实例的源代码]它在我的DEV PC中运行良好。

public static User getUser(String email){ 
    PersistenceManager pm = PMF.get().getPersistenceManager(); 
    User user, detached = null; 
    try { 
     user = pm.getObjectById(User.class, 
      email); 

     // If you're using transactions, you can call 
     // pm.setDetachAllOnCommit(true) before committing to automatically 
     // detach all objects without calls to detachCopy or detachCopyAll. 
     detached = pm.detachCopy(user); 
    } 
    catch(Exception e){ 
     e.printStackTrace(); 
    } 
    finally { 
     pm.close(); 
    } 
    return detached; 
} 

enter image description here

![在这里输入的形象描述] [2]

回答

0

由于ID可以是自动生成的编号或自定义字符串 “NAME =” 有没有做它清除id是一个字符串(否则你会得到一个“id =”)。

至于找不到用户,问题一定是查询的方式,所以我们需要更深入的了解你的代码。

+0

添加一段代码以显示查询。请注意,整个应用程序在我的DEV PC中运行良好。 – lonelyloner

+0

我认为您可以通过调试生产应用程序来确定您要找的电子邮件是否正确?这个简单的错误是最难纠正的:/ –

相关问题