Crie um ObjectGrid local com uma entidade criando uma
classe Entity, registrando o tipo de entidade e armazenando uma instância da entidade
no cache.
Procedimento
- Crie o objeto Order. Para identificar o objeto como uma entidade ObjectGrid, inclua a anotação
@Entity. Ao incluir esta anotação, todos os atributos serializáveis no objeto são
automaticamente persistidos no eXtreme Scale,
a menos que você utilize anotações nos atributos para substituí-los. O atributo orderNumber
é anotado com @Id para indicar que este
atributo é a chave primária. A seguir, está um exemplo de um objeto Order:
Order.java
@Entity
public class Order {
@Id String orderNumber;
Date date;
String customerName;
String itemName;
int quantity;
double price;
}
- Execute o aplicativo eXtreme Scale Hello
World para demonstrar as operações entity. O programa de exemplo a seguir pode ser emitido no modo independente para
demonstrar as operações entity. Use esse programa em um projeto
Eclipse Java que tenha o
arquivo objectgrid.jar incluído no caminho de
classe. A seguir, está um exemplo de um aplicativo Hello world simples que utiliza o
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();
}
}
Este aplicativo de exemplo executa
as seguintes operações:
- Inicializa um eXtreme Scale local
com um nome gerado automaticamente.
- Registra as classes entity com o aplicativo utilizando a API do
registerEntities, embora utilizar a API do registerEntities não seja sempre necessário.
- Recupera um objeto Session e uma referência para o entity manager
para Session.
- Associa cada objeto Session do eXtreme Scale
com um EntityManager e EntityTransaction únicos. O EntityManager agora é utilizado.
- O método registerEntities cria um objeto BackingMap que é chamado
Order e associa os metadados para o objeto Order com o objeto BackingMap. Esses metadados
incluem os atributos chave e não-chave, juntamente com os tipos e nomes de atributo.
- Uma transação inicia e cria uma instância Order. A transação
é preenchida com alguns valores. A transação é, então, persistida
usando o método EntityManager.persist, que identifica
a entidade como aguardando para ser incluída no mapa associado.
- A transação é, então, confirmada, e a entidade é incluída
na instância de ObjectMap.
- Uma outra transação é feita e o objeto Order é recuperado
usando a chave 1. O cast de tipo no método EntityManager.find
é necessário. A capacidade do Java SE 5
não é usada para assegurar que o arquivo objectgrid.jar
funciona em um Java SE Versão
5 e Java Virtual
Machine posterior.