什么是" name ="适用于Google App Engine数据存储关键字段

时间:2014-06-30 20:47:44

标签: google-app-engine jdo

User类定义如下

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

    @Persistent
    private String firstname;

    @Persistent
    private String lastname;

在PROD中,我添加了一个用户发送电子邮件=" david12@gmail.com" ;, firstname = something,lastname = via JDO。然后在数据存储区查看器中, ID /名称字段的值为" Name = david12 @gmail.com" 为什么"姓名="添加?我的程序找不到用户密钥=" david12@gmail.com"。它可以在我的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]

1 个答案:

答案 0 :(得分:0)

由于id可以是自动生成的数字,也可以是自定义字符串," name ="有明确表示id是一个字符串(否则你会得到一个" id =")。

至于找不到用户,问题必须在于如何进行查询,因此我们需要更深入地了解您的代码才能弄明白。

相关问题