Lernprogramm zum EntityManager: Entitätsklasse erstellen

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

  1. 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;
    }
  2. 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:
    1. Sie initialisiert eine lokale eXtreme-Scale-Implementierung mit einem automatisch generierten Namen.
    2. Sie registriert die Entitätsklassen über die API "registerEntities" bei der Anwendung, obwohl die Verwendung der API "registerEntities" nicht immer erforderlich ist.
    3. Sie ruft ein Session-Objekt und eine Referenz auf den EntityManager für das Session-Objekt ab.
    4. Sie ordnet jedes eXtreme-Scale-Session-Objekt einem einzigen EntityManager und einer EntityTransaction zu. Jetzt wird der EntityManager verwendet.
    5. 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.
    6. 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.
    7. Anschließend wird die Transaktion festgeschrieben, und die Entität wird in die ObjectMap-Instanz eingeschlossen.
    8. 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.