如果我有两种类型的模型,每种模型互相引用,那么我首先尝试定义的模型说它不能识别引用的其他类型(因为它在文件中进一步定义).例如:
class Author(db.Model):
most_recent_book = db.ReferenceProperty(Book)
class Book(db.Model):
author = db.ReferenceProperty(Author)
Run Code Online (Sandbox Code Playgroud)
这将声称无法识别引用的"Book"模型.如果我翻转订单,我会遇到同样的问题(除非它会说"作者"无法识别).我该如何解决这个问题?
我想知道 - 一个例子非常感谢 -
如何在Google App Engine for Java中建立关系模型?
-
一对多- 多到多
我在网上搜索过,我发现没有关于Java的所有指南和教程都是关于Python的.
我从这篇文章中了解到,在Python中,关系是使用ReferenceProperty建模的.但是,我在Javadoc引用中没有发现这个类.
此外,在本文中他们讨论了以下内容:
目前,Java用户的工具短缺,主要是由于App Engine的Java平台相对较新.
但是,那是在2009年写的.
最后,我最终使用每个实体的祖先路径建模关系.我发现这个方法存在问题并限制了应用程序的可伸缩性.
你能指导我到Python的ReferenceProperty类的等效Java 类吗?或者,您能否举例说明如何使用Java数据存储区低级API在AppEngine中建模关系.
在此先感谢您的帮助.
java google-app-engine referenceproperty google-cloud-datastore
考虑到数据存储区中模型的关键,我希望能够在不加载模型本身的情况下设置referenceproperty(因为我不需要该信息).
例如:
class Book(db.Model):
author = db.StringProperty()
title = db.StringProperty()
class Review(db.Model):
book = db.ReferenceProperty(Book)
description = db.StringProperty()
Run Code Online (Sandbox Code Playgroud)
假设我已经拥有了一个Book(调用它bookKey)的键,但我没有相应的Book对象本身,有没有办法做相当于
review = Review()
review.description = "It was ok, but I would recommend it for insomniacs."
review.book = bookKey
Run Code Online (Sandbox Code Playgroud)
或者我需要
book = Book.get(bookKey) #I don't want this datastore access
#as I don't need the book object.
review = Review()
review.description = "It was ok, but I would recommend it for insomniacs."
review.book = book
Run Code Online (Sandbox Code Playgroud)
我找到了从ReferenceProperty …