【发布时间】:2013-05-30 11:37:53
【问题描述】:
我正在使用 JDO 编写一个云端点 api,以根据 emailid 获取用户列表。我将 emailId 作为 @Named 参数传递给 Api 方法并将其添加到查询过滤器中,我收到错误消息“无法解析表达式部分:@gmail.com”
@Api (name="MyAppname", version="v1")
public class PersonEndpoint {
public Person validate(@Named("emailId") String emailId, @Named("role") String role){
.......
PersistenceManager pm=getPersistenceManager();
Query q = pm.newQuery(Person.class);
q.setFilter(" email == "+emailId+" && role == "+role);
try{
person=(Person)q.execute();
}finally{
q.closeAll();
pm.close();
}
return person;
}
当我调用上面的 api 时,会抛出下面的错误
javax.jdo.JDOUserException: Portion of expression could not be parsed: @gmail.com && role == collector
at org.datanucleus.api.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException(NucleusJDOHelper.java:519)
at org.datanucleus.api.jdo.JDOQuery.execute(JDOQuery.java:230)
我们如何将带有特殊字符的参数传递给查询过滤器?
【问题讨论】:
标签: google-app-engine parameters special-characters jdo