我仍然无法使用GAE的键/ ID。我一直收到错误:没有找到与密钥匹配的实体:Key(Medewerker(5201690726760448))。实体存在于数据存储区中,我多次检查过。
我只想简单地获取具有特定ID的用户对象。在我的servlet中,我有以下代码:
Long userId = Long.parseLong(req.getParameter("user"));
User user = userDao.getUser(userId);
上面的代码会显示错误。在userDaoOfyImpl.java中,我有以下方法'getUser':
public Gebruiker getGebruiker(Long id) {
Gebruiker result = null;
Gebruiker leerling = (Gebruiker) ofy.get(Leerling.class, id);
Gebruiker medewerker = (Gebruiker) ofy.get(Medewerker.class, id);
Gebruiker stagebedrijf = (Gebruiker)ofy.get(StageBedrijf.class, id);
//Gebruiker instantie returnen
if(leerling != null) {
result = leerling;
} else if(medewerker != null) {
result = medewerker;
} else if(stagebedrijf != null) {
result = stagebedrijf;
}
return result;
}
变量是荷兰语,但我想你们都知道这个想法。上面的方法在不同的类中搜索,寻找与ID匹配的用户,然后返回它。
问题是我得到上面显示的错误,我真的很沮丧,我做错了什么?是我使用ID的方法或方式还是......?
提前致谢!
答案 0 :(得分:1)
here您可以阅读get
方法:
抛出:NotFoundException - 如果数据存储区中不存在该键
使用
Gebruiker leerling = (Gebruiker) ofy.find(Leerling.class, id);
当密钥不存在而NotFoundException
时,find方法不会抛出null
。