Tutorial do Entity Manager: Criando uma Classe de Entidade

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

  1. 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;
    }
  2. 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:
    1. Inicializa um eXtreme Scale local com um nome gerado automaticamente.
    2. Registra as classes entity com o aplicativo utilizando a API do registerEntities, embora utilizar a API do registerEntities não seja sempre necessário.
    3. Recupera um objeto Session e uma referência para o entity manager para Session.
    4. Associa cada objeto Session do eXtreme Scale com um EntityManager e EntityTransaction únicos. O EntityManager agora é utilizado.
    5. 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.
    6. 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.
    7. A transação é, então, confirmada, e a entidade é incluída na instância de ObjectMap.
    8. 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.