Erstellen Sie ein lokales ObjectGrid mit einer einzigen Entität, indem Sie eine
Entitätsklasse erstellen, den Entitätstyp registrieren und eine Entitätsinstanz im Cache speichern.
Vorgehensweise
- Erstellen Sie das Order-Objekt. Zum Identifizieren des Objekts als ObjectGrid-Entität fügen Sie die Annotation "@Entity" hinzu.
Wenn Sie diese Annotation hinzufügen, werden alle serialisierbaren Attribute im Objekt automatisch
persistent in eXtreme Scale definiert, sofern Sie keine Annotationen für die
Attributen verwenden, um die Attribute zu überschreiben.
Das Attribut
orderNumber wird mit @Id annotiert, um anzuzeigen, dass es sich bei diesem Attribut um den Primärschlüssel handelt. Es folgt ein Beispiel für ein Order-Objekt:
Order.java
@Entity
public class Order
{
@Id String orderNumber;
Date date;
String customerName;
String itemName;
int quantity;
double price;
}
- Führen Sie die eXtreme-Scale-Anwendung "Hello World" aus, um die Entitätsoperationen zu
demonstrieren. Das folgende Beispielprogramm kann im eigenständigen Modus ausgeführt werden, um die Entitätsoperationen zu demonstrieren.
Verwenden Sie dieses Programm in einem Eclipse-Java-Projekt, im dem die Datei
objectgrid.jar dem Klassenpfad hinzugefügt wurde. Es folgt ein Beispiel für eine einfache Anwendung "Hello world", die
eXtreme Scale verwendet:
Application.java
package emtutorial.basic.step1;
import com.ibm.websphere.objectgrid.ObjectGrid;
import com.ibm.websphere.objectgrid.ObjectGridManagerFactory;
import com.ibm.websphere.objectgrid.Session;
import com.ibm.websphere.objectgrid.em.EntityManager;
public class Application
{
static public void main(String [] args)
throws Exception
{
ObjectGrid og =
ObjectGridManagerFactory.getObjectGridManager().createObjectGrid();
og.registerEntities(new Class[] {Order.class});
Session s = og.getSession();
EntityManager em = s.getEntityManager();
em.getTransaction().begin();
Order o = new Order();
o.customerName = "John Smith";
o.date = new java.util.Date(System.currentTimeMillis());
o.itemName = "Widget";
o.orderNumber = "1";
o.price = 99.99;
o.quantity = 1;
em.persist(o);
em.getTransaction().commit();
em.getTransaction().begin();
o = (Order)em.find(Order.class, "1");
System.out.println("Found order for customer: " + o.customerName);
em.getTransaction().commit(); }
}
Diese Beispielanwendung führt die folgenden Operationen aus:
- Sie initialisiert eine lokale eXtreme-Scale-Implementierung mit einem automatisch generierten Namen.
- Sie registriert die Entitätsklassen über die API "registerEntities"
bei der Anwendung, obwohl die Verwendung der API "registerEntities" nicht immer erforderlich ist.
- Sie ruft ein Session-Objekt und eine Referenz auf den EntityManager für das Session-Objekt ab.
- Sie ordnet jedes eXtreme-Scale-Session-Objekt einem einzigen
EntityManager und einer EntityTransaction zu. Jetzt wird der EntityManager
verwendet.
- Die Methode "registerEntities" erstellt ein BackingMap-Objekt mit dem Namen "Order" und ordnet
die Metadaten für das Order-Objekt dem BackingMap-Objekt zu.
Zu diesen Metadaten gehören der Schlüssel und Attribute ohne Schlüsselfunktion sowie die Attributtypen und -namen.
- Es wird eine Transaktion gestartet und eine Order-Instanz erstellt. Die Transaktion wird mit einigen Werten gefüllt.
Anschließend wird die Transaktion mit der Methode
EntityManager.persist persistent gespeichert, was die Entität als Entität identifiziert, die
auf den Einschluss in die zugeordnete ObjectGrid-Map wartet.
- Anschließend wird die Transaktion festgeschrieben, und die Entität wird in die ObjectMap-Instanz eingeschlossen.
- Es wird eine weitere Transaktion erstellt, und das Order-Objekt wird unter Verwendung von Schlüssel 1 abgerufen.
Die Datentypänderung in der Methode EntityManager.find ist erforderlich.
Die Funktionalität von Java SE 5
wird nicht verwendet, um sicherzustellen, dass die Datei
objectgrid.jar in einer Java Virtual
Machine
der Java SE Version
5 und höher funktioniert.