Normalmente, las aplicaciones en primer lugar obtienen una referencia de ObjectGrid y, a continuación, una Session de dicha referencia para cada hebra. Las sesiones no pueden compartirse entre hebras. Hay disponible un método adicional en el elemento Session, el método getEntityManager. Este método devuelve una referencia a un gestor de entidades para utilizar para esta hebra. La interfaz EntityManager puede sustituir las interfaces Session y ObjectMap para todas las aplicaciones. Puede utilizar estas API EntityManager si el cliente tiene acceso a las clases de entidad definidas.
El método getEntityManager está disponible en un objeto Session. El siguiente código de ejemplo ilustra cómo crear una instancia de ObjectGrid local y acceder a EntityManager. Consulte la interfaz EntityManager en la documentación de la API para ver detalles sobre todos los métodos soportados.
ObjectGrid og =
ObjectGridManagerFactory.getObjectGridManager().createObjectGrid("intro-grid");
Session s = og.getSession();
EntityManager em = s.getEntityManager();
Existe una relación de uno a uno entre el objeto Session y el objeto EntityManager. Puede utilizar el objeto EntityManager más de una vez.
Persistir una entidad quiere decir guardar el estado de una entidad nueva en una memoria caché ObjectGrid. Después de llamar al método de persistencia, la entidad pasa a estado gestionado. Persistir es una operación transaccional, y la nueva entidad se almacena en una memoria caché ObjectGrid después de que se confirme la transacción.
Order order = new Order(123);
em.persist(order);
order.setX();
...
Order foundOrder = (Order)em.find(Order.class, new Integer(123));
El método remove, igual que el método persist, es una operación transaccional. El ejemplo siguiente muestra el límite transaccional llamando a los métodos begin y commit.
em.getTransaction().begin();
Order foundOrder = (Order)em.find(Order.class, new Integer(123));
em.remove(foundOrder );
em.getTransaction().commit();
La entidad debe, en primer lugar, ser gestionada antes de que se pueda eliminar, para ello llame al método find dentro del límite transaccional. Llame al método remove en la interfaz EntityManager.
El método invalidate se comporta de forma parecida al método remove, pero no invoca a los plug-ins Loader. Utilice este método para eliminar las entidades del ObjectGrid, sino para conservarlas en el almacén de datos de programa de fondo.
em.getTransaction().begin();
Order foundOrder = (Order)em.find(Order.class, new Integer(123));
em.invalidate(foundOrder );
em.getTransaction().commit();
La entidad debe, en primer lugar, ser gestionada antes de que se pueda invalidar, para ello llame al método find dentro del límite transaccional. Después de llamar al método find, puede llamar al método invalidate en la interfaz EntityManager.
El método update también es una operación transaccional. Para poder aplicar una actualización, primero se debe gestionar la entidad.
em.getTransaction().begin();
Order foundOrder = (Order)em.find(Order.class, new Integer(123));
foundOrder.date = new Date(); // actualiza la fecha del pedido
em.getTransaction().commit();
En el ejemplo anterior, no se llama al método persist después de que se actualice la entidad. La entidad se actualiza en la memoria caché ObjectGrid cuando la transacción se confirma.
Con el motor de consultas flexible, puede recuperar entidades mediante la API EntityManager. Cree consultas de tipo SELECT en una entidad o esquema basado en objetos mediante el lenguaje de consulta de ObjectGrid. La interfaz de consultas explica en detalle cómo ejecutar las consultas mediante la API EntityManager. Consulte el apartado sobre la API Query si desea información sobre cómo utilizar las consultas.
Una entidad QueryQueue es una estructura de datos en forma de cola asociada con una consulta de entidad. Selecciona todas las entidades que coinciden con la condición WHERE en el filtro de la consulta y coloca las entidades resultantes en una cola. Los clientes puede recuperar de manera iterativa las entidades de esta cola. Si desea más información, consulte Colas de consulta de entidades.