La interfaz EntityManager separa las aplicaciones del estado alojado en su almacén de datos de cuadrícula de servidores.
El coste de utilizar la interfaz EntityManager no es alto y depende del tipo de trabajo que se esté realizando. Utilice siempre la interfaz EntityManager y optimice la lógica empresarial crucial una vez que se complete la aplicación. Puede reacondicionar cualquier código que utilice interfaces EntityManager para utilizar correlaciones y tuples. Normalmente, es posible que sea necesario este reacondicionamiento del código para el 10 por ciento del código.
Si utiliza relaciones entre objetos, el impacto sobre el rendimiento es menor porque una aplicación que utilice correlaciones necesita gestionar estas relaciones de forma parecida a la interfaz EntityManager.
Las aplicaciones que utilizan la interfaz EntityManager no necesitan proporcionar una implementación ObjectTransformer. Las aplicaciones se optimizan automáticamente.
@Entity
public class Person
{
@Id
String ssn;
String firstName;
@Index
String middleName;
String surname;
}
A continuación se muestra parte del código para buscar la entidad y actualizarla:Person p = null;
s.begin();
p = (Person)em.find(Person.class, "1234567890");
p.middleName = String.valueOf(inner);
s.commit();
A continuación se muestra el mismo código utilizando correlaciones y tuples:
Tuple key = null;
key = map.getEntityMetadata().getKeyMetadata().createTuple();
key.setAttribute(0, "1234567890");
// La modalidad de copia siempre es NO_COPY para las correlaciones de entidad
// si no se utiliza COPY_TO_BYTES.
// O bien necesitamos copiar el tuple o bien podemos solicitar que ObjectGrid
// lo haga:
map.setCopyMode(CopyMode.COPY_ON_READ);
s.begin();
Tuple value = (Tuple)map.get(key);
value.setAttribute(1, String.valueOf(inner));
map.update(key, value);
value = null;
s.commit();
Los dos fragmentos de código tienen el mismo resultado y una aplicación puede utilizar cualquiera de los dos fragmentos de código o ambos a la vez. El segundo fragmento de código muestra cómo utilizar correlaciones directamente y cómo trabajar con tuples (los pares de clave y valor). El tuple de valor tiene tres atributos: firstName, middlename y surname, indexados en 0, 1 y 2. El tuple de clave tiene un solo atributo, el número de ID se indexa a cero. Puede ver cómo se crean los tuples utilizando los métodos EntityMetadata#getKeyMetaData o EntityMetadata#getValueMetaData. Debe utilizar estos métodos para crear tuples para una entidad. No puede implementar la interfaz Tuple y pasar una instancia de la implementación de tuple.