在谷歌应用程序引擎上,如何摆脱“事务内仅允许祖先查询”?错误?

发布于 2024-09-11 05:50:06 字数 366 浏览 2 评论 0原文

我在执行一项特定查询时遇到问题。它需要在事务中运行,而且确实如此,但是每当应用程序引擎执行我的查询时,我都会收到以下错误:

仅允许祖先查询 内部交易

您会看到我的查询确实有一个祖先。那么应用程序引擎真正抱怨的是什么?

    q = db.Query(EventBase)
    q.ancestor = db.Key.from_path(aggrRootKind, aggrRootKeyName)
    q.filter('undone =','False')
    q.order('-version')
    qResult = q.fetch(1, 0)

I am having trouble with one specific query. It needs to run in a transaction, and it does, but whenever the app engine executes my query I get the following error:

Only ancestor queries are allowed
inside transactions

You'll see that my query DOES have an ancestor. So what is the app engine really complaining about?

    q = db.Query(EventBase)
    q.ancestor = db.Key.from_path(aggrRootKind, aggrRootKeyName)
    q.filter('undone =','False')
    q.order('-version')
    qResult = q.fetch(1, 0)

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

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

发布评论

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

评论(1

你げ笑在眉眼 2024-09-18 05:50:06

这一行:

q.ancestor = db.Key.from_path(aggrRootKind, aggrRootKeyName)

应该读作:

q.ancestor(db.Key.from_path(aggrRootKind, aggrRootKeyName))

ancestor() 是一个方法,在第一个代码片段中,您将替换它,而不是调用它。

This line:

q.ancestor = db.Key.from_path(aggrRootKind, aggrRootKeyName)

should read:

q.ancestor(db.Key.from_path(aggrRootKind, aggrRootKeyName))

ancestor() is a method, and in the first snippet, you're replacing it, rather than calling it.

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