使用 GQL 处理名称中包含点 (.) 的列

发布于 2024-11-24 06:19:18 字数 614 浏览 1 评论 0原文

我在 GAE/Java 应用程序中使用 Objectify 进行数据存储操作。我在项目中的几个地方使用了 Objectify 的 @Embeded 工具。 Objectify 自动展平实体内由 @Embeded 表示法标记的嵌套对象。分隔符。因此,我最终得到了像entity.embededObject.Field这样的列名称,

例如,我的数据存储中有一个实体“Person”,其中有两列nameaddress.email

我想通过编写简单的 GQL 查询来过滤数据存储查看器中的 Person。 但以下查询因语法错误而失败:

SELECT * FROM Person where address.email='[email protected]'

而以下查询应正常工作

SELECT * FROM Person where name='Joe'

我做错了什么?

I use Objectify for datastore operations in my GAE/Java application. I have used Objectify's @Embeded facility in a couple of places in my project. Objectify automatically flattens the nested objects within the entity marked by @Embeded notation using the . separator. Thus I have ended up with column names like entity.embededObject.Field

For example I have an entity 'Person' in my data store with two columns name and address.email.

I want to filter through Person in the datastore viewer by writing a simple GQL query.
But the following query fails with a syntax error:

SELECT * FROM Person where address.email='[email protected]'

whereas the following works as it should

SELECT * FROM Person where name='Joe'

What am I doing wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

想你只要分分秒秒 2024-12-01 06:19:18

GQL 目前不支持此功能 - 仅支持“单词”字符。您绝对应该将此问题作为错误提交到问题跟踪器中。

GQL currently doesn't support this - only 'word' characters are supported. You should definitely file this as a bug in the issue tracker.

时光清浅 2024-12-01 06:19:18

今天经过测试,可以使用反引号运行以下命令,

SELECT * FROM `your.kind`

我相信这对于任何参数都适用,但如果我错了,请纠正我。

Tested today, it is possible to run the following with backquotes

SELECT * FROM `your.kind`

I believe this holds true for any parameter, but please correct me if I am wrong.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文