Die Schnittstelle EntityManager schottet Anwendungen vom Status im Datenspeicher des Server-Grids ab.
Die Kosten für die Verwendung der Schnittstelle "EntityManager" sind nicht sehr hoch und richten sich nach dem Typ der durchführten Arbeiten. Verwenden Sie immer die Schnittstelle EntityManager, und optimieren Sie die entscheidende Geschäftslogik nach Abschluss der Anwendung. Sie können jeden Code, der EntityManager-Schnittstellen verwendet, so nachbearbeiten, dass er Maps und Tupel verwendet. Im Allgemeinen kann diese Codenachbesserung für zehn Prozent des Codes erforderlich sein.
Wenn Sie Beziehungen zwischen Objekten verwenden, ist der Leistungseinfluss geringer, weil eine Anwendung, die Maps verwendet, diese Beziehungen ähnlich wie die Schnittstelle EntityManager verwalten muss.
Anwendungen, die die Schnittstelle EntityManager verwenden, müssen keine ObjectTransformer-Implementierung bereitstellen. Die Anwendungen werden automatisch optimiert.
@Entity
public class Person
{
@Id String ssn;
String firstName;
@Index
String middleName;
String surname;
}
Im Folgenden sehen Sie Beispielcode, mit dem die Entität gesucht und aktualisiert wird:Person p = null;
s.begin();
p = (Person)em.find(Person.class, "1234567890");
p.middleName = String.valueOf(inner);
s.commit();
Im Folgenden sehen Sie denselben Code mit Maps und Tupeln:Tuple key = null;
key = map.getEntityMetadata().getKeyMetadata().createTuple();
key.setAttribute(0, "1234567890");
// Der Kopiermodus ist für Entitäts-Maps immer NO_COPY, sofern nicht
// COPY_TO_BYTES verwendet wird.
// Das Tupel muss entweder kopiert werden, oder das ObjectGrid muss
// dazu aufgefordert werden.
map.setCopyMode(CopyMode.COPY_ON_READ);
s.begin();
Tuple value = (Tuple)map.get(key);
value.setAttribute(1, String.valueOf(inner));
map.update(key, value);
value = null;
s.commit();
Beide Code-Snippets haben dasselbe Ergebnis, und eine Anwendung kann entweder das eine und/oder das andere Code-Snippet verwenden.Das zweite Code-Snippet zeigt, wie Maps direkt verwendet werden und wie mit den Tupeln (Schlüssel/Wert-Paare) gearbeitet wird. Das Werttupel hat drei Attribute: firstName, middlename und surname mit den Indizes 0, 1 bzw. 2. Das Schlüsseltupel hat ein einziges Attribut, die ID-Nummer, mit dem Index null. Sie können sehen, wie Tupel mit der Methode "EntityMetadata#getKeyMetaData" oder "EntityMetadata#getValueMetaData" erstellt werden. Sie müssen diese Methoden verwenden, um Tupel für eine Entität zu erstellen. Sie können die Schnittstelle "Tuple" nicht implementieren, und Sie können keine Instanz Ihrer Tuple-Implementierung übergeben.