Innerhalb einer Transaktion muss ich mehrere Entitäten (Zehntel-Hunderter) laden und diese Entitäten wurden einer übergeordneten Entität zugewiesen, so dass sie als eine Entitätsgruppe betrachtet werden (andernfalls wir kann nicht diejenigen Entitäten in einer einzigen Transaktion) laden, die aber gut funktioniert müssen jedes Mal, wenn wir diese Einheiten die MuttergesellschaftDataStore mit Objectify - Laden von Entitäten/Schlüsseln ohne Angabe des übergeordneten Elements
ofy().load().type(clazz).parent(parent).ids(keys);
Wenn wir die Einheiten ohne die übergeordnete Entität abfragen zu ladende geladen wird geladen wird, dann erwartet dies zu arbeiten und laden Sie die Einheiten, aber es ist nicht
ofy().load().type(clazz).ids(keys);
Der Grund dahinter, wenn zwei oder mehrere Threads gleichen/verschiedenen Einträge zu laden, rufen Sie (aber gleichen Eltern) es zu viel Belastung auf die übergeordnete Entität "java.util.ConcurrentModificationException verursachen würde: zu viel Streit auf diese Datenspeichereinheiten. . Bitte versuchen Sie es erneut“
Bitte Rat
Das bedeutet Laden von X Entity ** keys ** Ertrag zum Laden von X parent ** entity **, was bedeutet, dass Sie innerhalb einer Transaktion einfach keine 1K ** Schlüssel laden können ** was völlig sinnlos ist, und ich bin mir nicht sicher, dass es richtig ist. – sami
Das Laden einer Entität oder ihres Schlüssels bedeutet nicht, dass die übergeordnete Entität oder ihr Schlüssel ebenfalls geladen wird (die Eltern sind möglicherweise nicht einmal vorhanden, siehe http://stackoverflow.com/a/37283449/4495081). –
Der Konflikt wird durch den Zugriff auf dieselbe Entitätsgruppe und nicht durch die Anzahl der Gruppenentitäten/Schlüssel selbst verursacht. –