2 Stimmen

Google-Datenspeicher - kann er auch "Lazy Loading"?

Wenn ich ein Kundenobjekt mit einer Liste von Aufträgen habe, die mit der Eigenschaft db.ReferenceProperty

nach einer Weile kann ich eine große Menge an Aufträgen haben, wenn ich das Kundenobjekt ziehe, besteht dann die Gefahr, dass ich den gesamten Satz an Aufträgen ziehe?

6voto

Will McCutchen Punkte 12907

Ja, db.ReferenceProperty-Felder werden träge geladen. Von die Dokumente :

ReferenceProperty referenziert und dereferenziert automatisch Modellinstanzen als Eigenschaftswerte: Eine Modellinstanz kann einer ReferenceProperty direkt zugewiesen werden, und ihr Schlüssel wird verwendet. Der ReferenceProperty-Wert kann so verwendet werden, als wäre er eine Modellinstanz und wird die Datenspeichereinheit abgerufen und die Modellinstanz erstellt, wenn sie zum ersten Mal auf diese Weise verwendet wird. Unberührte Verweiseigenschaften werden nicht nach nicht benötigten Daten abgefragt.

So zum Beispiel:

# Any reference properties not loaded yet
customer = Customer.get_by_id(1)
print customer.name
print customer.address

# Assuming customer.order is a ReferenceProperty, now is when it
# would be loaded from the datastore.
print customer.order.created_at

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X