App Engine的过滤器与gql方法

Mat*_*ris 5 google-app-engine gql filter gqlquery

我的系统中有一个用户创建了一个我想要检索的实体.我试图使用过滤器这样做,因为它应该比调用gql方法更快.但是,过滤器不返回任何结果,并且gql有效.

randy_res = Vote.all().filter('created_by=', randy).fetch(limit=10)
randy_res = Vote.gql('WHERE created_by=:1', randy)
Run Code Online (Sandbox Code Playgroud)

是否有任何理由为什么过滤器将返回一个空列表,并且gql调用将返回正确的结果?

Dav*_*ill 12

使用时filter(),您需要在字段名称和操作员之间留出空格.要使您的filter()呼叫按预期工作,您只需在等号前插入一个空格:

randy_res = Vote.all().filter('created_by =', randy).fetch(limit=10)
Run Code Online (Sandbox Code Playgroud)

  • 叹.我知道这不是严格意义上的错误.我喜欢把它称为api中的"疣",正如ryanb在问题日志中所说的那样.:)也许我应该考虑在findbugs或eclipse中创建一个规则,当它看到缺少空格时会给我一个警告. (2认同)