我正在使用JDO編寫一個雲端點API,以根據emailid獲取用戶列表。我將電子郵件ID作爲@Named參數傳遞給電子郵件,並將其添加到查詢過濾器,並收到錯誤消息「解析查詢時出現意外的表達式類型。GAE(電子郵件)不支持的變量」gae雲端點api jdo查詢過濾器電子郵件不支持
僅供參考,gae版本1.8
@Api (name="MyAppname", version="v1")
public class PersonEndpoint {
public Person validate(@Named("email") String email, @Named("role") String role){
.......
PersistenceManager pm=getPersistenceManager();
Query q = pm.newQuery(Person.class);
q.setFilter(" email == emailParam && role == "+role);
q.declareParameters("String emailParam");
try{
person=(Person)q.execute(email);
}finally{
q.closeAll();
pm.close();
}
return person;
}
}
任何建議嗎?
這裏是Person類
@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class Person {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long id;
@Persistent
private String emailId;
@Persistent
private String role;
<getters and setters here>
}
當我調用Validate API
javax.jdo.JDOFatalUserException: Unexpected expression type while parsing query. Variables not supported by GAE (email)
at org.datanucleus.api.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException(NucleusJDOHelper.java:498)
at org.datanucleus.api.jdo.JDOQuery.execute(JDOQuery.java:252)
任何異常有着堆棧跟蹤,和類型爲此事。 – DataNucleus
我看到這個異常「解析查詢時意外的表達式類型,GAE(email)不支持的變量」...是不是由gae支持的電子郵件?我們能不能寫一個查詢來通過電子郵件ID來過濾一個實體? –
您仍然不會提供基本信息。你有一個Person類......它是什麼?堆棧跟蹤? – DataNucleus