2016-10-02 3 views
0

Einer meiner Entitäten hat die folgende Erklärung für seine ID:id() nicht funktioniert (nicht vollständig) in Objectify

@Id 
private String     oInstID; 
public String     getInstID(){return oInstID;} 
public void initID(){ 
    oInstID = OfyController.makeID(Partner.class, null); 
} 

Beachten Sie, dass ich auch eine Erklärung gleichen Inhalts für meine anderen Unternehmen haben.

Ich habe in den folgenden Test Aussagen nach dem ofy.save():

Sticky persisted = OfyController.ofy().load().type(Sticky.class).first().now(); 
String id = persisted.getInstID(); 
Sticky queried = OfyController.ofy().load().type(Sticky.class).id(id).now(); 
Sticky queried2 = OfyController.ofy().load().entity(persisted).now(); 

Die beharrte das Unternehmen zurück

Die id die ID der Entität zurück

die abgefragt null zurückgegeben ... das ist, was mein Problem ist.

Die queried2 kehrte die gleiche Einheit wie die beharrte

Jede Idee, warum zurückgegeben null abgefragt?

Danke!

+0

präsentieren Sie die Entitätsdefinition _exactly_? Wenn Sie ein Feld "@ Parent" haben, führt dies zu diesem Verhalten. Es ist nichts offensichtlich falsch mit diesem Code, also poste ein komplettes Beispiel, das deine Sicherungsoperation zeigt. – stickfigure

Antwort

-1

Meine Erfahrung mit Objectify ist winzig und sehr abgestanden, aber was Sie beschreiben, ist im Einklang mit eventual consistency. Es gibt ein paar nützliche Informationen in Storing Data with Objectify and Datastore.

+0

@Dave ... was muss mein Szenario mit Eventual Consistency tun? Nur ein FYI ... die obigen Testaussagen wurden in der JUnit geschrieben, also sollte EC hier kein Faktor sein. Vielen Dank! –

+1

EC ist ein Faktor, wenn Sie die JUnit gegen dev_appserver verwenden. Dev_appserver simuliert eventuelle Konsistenz für Sie. Die dritte Aussage entspricht SELECT * FROM Sticky WHERE id = ' die absolut unterliegt EG ist. –

+2

Das ist nicht richtig -. Load() Typ (t) .id (i) ist die gleiche wie einen Schlüssel für die Schaffung {t i} und ein Get-by-Taste ausgeführt wird. Es wird stark konsistent sein. Was auch immer das Problem ist, es ist etwas anderes. – stickfigure