2010-12-10 4 views
0

von BeispielSLIM3 verteilte Transaktion auf appengine

@Model 
public class Account { 

    @Attribute(primaryKey = true) 
    private Key key; 

    private Integer balance; 
    ... 
} 

aus Beispiel http://sites.google.com/site/slim3appengine/ Ich verstehe nicht, warum Geldtransfer Notwendigkeit 2 verschiedene Transaktion zu tun, da dies nur eine Einheit (gleiche Einheit) ist

Acount src = gtx.get(Acount.class, srcKey); //arent src and des same entity? why do 2 trans? 
    Acount dest = gtx.get(Acount.class, destKey); 
    if (src.getBalance() >= amount) { 
     src.setBalance(src.getBalance() - amount); 
     dest.setBalance(dest.getBalance() + amount); 
    } 

Antwort

1

src und dest sind verschiedene Entitäten - Sie holen sie mit separaten Schlüsseln (srcKey und destKey).

+0

ist separate Einheit, ich stimmte zu. aber beide verwenden dieselbe Entitätsgruppe. Kann die Transaktion also nicht in einem Zyklus ausgeführt werden? eher als 2? – cometta

+1

@cometta Sie sind nicht in derselben Entitätsgruppe. Entitätsgruppen sind Entitäten mit demselben übergeordneten Element und beide oben genannten Entitäten sind Stammelemente ohne Eltern. –

Verwandte Themen