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
- 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;
}
- 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:
- Inicializa un eXtreme Scale local con un nombre generado automáticamente.
- Registra las clases de entidad con la aplicación utilizando la API registerEntities, aunque no siempre necesario utilizar la API
registerEntities.
- Recupera un elemento Session y una referencia al gestor de entidades para
Session.
- Asocia cada Session de eXtreme Scale con un solo
EntityManager y EntityTransaction. Ahora se utiliza EntityManager.
- 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.
- 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.
- A continuación, la transacción se confirma y la entidad se incluye en
la instancia ObjectMap.
- 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.