Guía de aprendizaje del gestor de entidades: creación de una clase de entidad

Cree un ObjectGrid local con una entidad creando una clase de entidad, registrando el tipo de entidad y almacenando una instancia de entidad en la memoria caché.

Procedimiento

  1. Cree el objeto Order. Para identificar el objeto como una entidad ObjectGrid, añada la anotación @Entity. Cuando añade esta anotación, todos los atributos serializables del objeto persisten automáticamente en eXtreme Scale, salvo que utilice anotaciones en los atributos para alterar temporalmente los atributos. El atributo orderNumber se anota con @Id para indicar que este atributo es la clave primaria. A continuación se muestra un ejemplo de un objeto Order:
    Order.java
    
    @Entity
    public class Order
    {
        @Id String orderNumber;
        Date date;
        String customerName;
        String itemName;
        int quantity;
        double price;
    }
  2. Ejecute la aplicación eXtreme Scale Hello World para demostrar las operaciones de entidad. El siguiente programa de ejemplo se puede emitir en modalidad autónoma para demostrar las operaciones de entidad. Utilice este programa en un proyecto Eclipse Java que tiene el archivo objectgrid.jar añadido a la classpath. A continuación se muestra un ejemplo de una aplicación Hello World simple que utiliza 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();
        }
    }
    Esta aplicación de ejemplo lleva a cabo las siguientes operaciones:
    1. Inicializa un eXtreme Scale local con un nombre generado automáticamente.
    2. Registra las clases de entidad con la aplicación utilizando la API registerEntities, aunque no siempre necesario utilizar la API registerEntities.
    3. Recupera un elemento Session y una referencia al gestor de entidades para Session.
    4. Asocia cada Session de eXtreme Scale con un solo EntityManager y EntityTransaction. Ahora se utiliza EntityManager.
    5. El método registerEntities crea un objeto BackingMap que se llama Order, y asocia los metadatos para el objeto Order con el objeto BackingMap. Estos metadatos incluyen los atributos de clave y no de clave, junto con los nombres y tipos de atributos.
    6. Se inicia una transacción y ésta crea una instancia Order. La transacción se llena con algunos valores. Entonces la transacción se conserva utilizando el método EntityManager.persist, que identifica que la entidad está en espera de incluirse en la correlación asociada.
    7. A continuación, la transacción se confirma y la entidad se incluye en la instancia ObjectMap.
    8. Se ejecuta otra transacción y el objeto Order se recupera utilizando la clave 1. La difusión de tipo en el método EntityManager.find es necesaria. La prestación Java SE 5 no se utiliza para asegurar que el archivo objectgrid.jar funcione en una Máquina virtual Java Java SE Versión 5 o posterior.