Tutoriel du gestionnaire d'entités : création d'une classe entité

Créez un ObjectGrid local avec une entité en créant une classe entité, en enregistrant le type d'entité avec et en stockant une instance d'entité dans le cache.

Procédure

  1. Créez l'objet Order. Pour identifier l'objet en tant qu'entité ObjectGrid, ajoutez l'annotation @Entity. Lorsque vous ajoutez cette annotation, tous les attributs sérialisables de l'objet sont automatiquement conservés dans eXtreme Scale, à moins que vous n'utilisiez des annotations permettant de substituer ces attributs. L'attribut orderNumber est annoté avec @Id pour indiquer que l'attribut est une clé primaire. Ci-après, un exemple d'objet Order :
    Order.java
    
    @Entity
    public class Order {
        @Id String orderNumber;
        Date date;
        String customerName;
        String itemName;
        int quantity;
        double price;
    }
  2. Exécutez l'application Hello world d'eXtreme Scale pour démontrer les opérations d'entités. L'exemple de programme suivant peut être lancé en mode autonome pour démontrer les opérations d'entités. Utilisez ce programme dans un projet Java Eclipse auquel le fichier objectgrid.jar a été ajouté dans le chemin d'accès aux classes. Ci-après, un exemple d'une application Hello world simple qui utilise eXtreme Scale :
    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();
        }
    }
    Cet exemple d'application effectue les opérations suivantes :
    1. Initialise une version d'eXtreme Scale locale avec un nom généré automatiquement.
    2. Enregistre les classes entité avec l'application à l'aide de l'API registerEntities, même si l'API registerEntities n'est pas toujours nécessaire.
    3. Restaure une session et une référence dans le gestionnaire d'entités pour la session.
    4. Associe chaque session eXtreme Scale à un seul EntityManager et un seul EntityTransaction. L'EntityManager est à présent utilisé.
    5. La méthode registerEntities crée un objet BackingMap appelé Order et associe les métadonnées de cet objet à l'objet BackingMap. Ces métadonnées incluent les attributs clés et non clés, ainsi que les noms et les types d'attribut.
    6. Une transaction démarre et crée une instance Order. La transaction est remplie avec des valeurs. La transaction est ensuite conservée à l'aide de la méthode EntityManager.persist, qui identifie l'entité comme étant en attente d'inclusion dans la mappe associée.
    7. La transaction est ensuite validée et l'entité est incluse dans ObjectMap.
    8. Une autre transaction est créée et l'objet Order est restauré à l'aide de la clé 1. Le transtypage est nécessaire dans la méthode EntityManager.find. La fonction Java SE 5 n'est pas utilisée pour vérifier que le fichier objectgrid.jar est compatible avec les machine virtuelle Java.