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;
}
![在此输入图片说明] [2]
答案 0 :(得分:0)
由于id可以是自动生成的数字,也可以是自定义字符串," name ="有明确表示id是一个字符串(否则你会得到一个" id =")。
至于找不到用户,问题必须在于如何进行查询,因此我们需要更深入地了解您的代码才能弄明白。