JPAReaderPattern
El patrón JPAReaderPattern se utiliza para recuperar datos de una base de datos utilizando OpenJPA.
Clases de soporte
La clase JPAReader realiza las tareas de obtención de un gestor de entidad, ejecución de las consultas proporcionadas por el usuario e iteración en los resultados de la consulta. Es necesario que haya un archivo persistence.xml empaquetado con la aplicación de usuario.
Propiedades obligatorias
Las propiedades siguientes son necesarias para el patrón.
Nombre de propiedad | Value |
---|---|
PATTERN_IMPL_CLASS | Clase que implementa la interfaz JPAReaderPattern |
PERSISTENT_UNIT | El nombre de unidad persistente de OpenJPA. |
Propiedades opcionales
Para el patrón las propiedades siguientes son opcionales.
Nombre de propiedad | Value | Descripción |
---|---|---|
debug | true o false (el valor predeterminado es false) | Habilita el rastreo detallado en esta secuencia de datos por lotes. |
openjpa.Log | DefaultLevel=WARN,SQL=TRACE | Valores de registro de JPA |
EnablePerformanceMeasurement | true o false (el valor predeterminado es false) | Calcula el tiempo total invertido en las secuencias de datos por lotes y el método processRecord, si se utiliza GenericXDBatchStep. |
EnableDetailedPerformanceMeasurement | true o false (el valor predeterminado es false) | Proporciona un desglose más detallado del tiempo invertido en cada método de las secuencias de datos por lotes. |
Definición de interfaz
public interface JPAReaderPattern {
/**
* Este método se invoca durante la fase de configuración de trabajo.
*
* @parámetro props Propiedades proporcionadas en el xJCL
*/
public void initialize(Properties props);
/**
* Este método debe recuperar valores para las diversas columnas de la fila actual del
* objeto Iterator dado. Normalmente, estos datos se emplearán para llenar un
* objeto intermedio que devolverse.
* @parámetro listIt
* @return
*/
public Object fetchRecord(Iterator listIt);
/**
* Este método debe devolver una consulta JPQL que se empleará durante la configuración de la corriente
* para recuperar todos los datos relevantes que se procesarán como parte de los pasos de trabajo.
* @return object que utilizar durante el paso process.
*/
public String getInitialLookupQuery();
/**
* Este método se llama durante el reinicio del trabajo. Debe utilizarse la señal de reinicio para crear
* una consulta JPQL que recuperará registros no procesados anteriormente. Normalmente, la señal de reinicio
* es la clave primaria en la tabla y la consulta obtendrá
todas las filas con el valor de clave primaria > restarttoken
* @parámetro restartToken
* @devuelve La consulta de reinicio
*/
public String getRestartQuery(String restartToken);
/**
* Este método se invoca justo antes de tomarse un punto de control.
* @devuelve El método debe devolver un valor de serie que identifique el último registro leído por la secuencia.
*/
public String getRestartTokens();
}
Ejemplo xJCL
<batch-data-streams>
<bds>
<logical-name>inputStream</logical-name>
<props>
<prop name="PERSISTENT_UNIT" value="hellojpa"/>
<prop name="debug" value="true"/>
<prop name="PATTERN_IMPL_CLASS" value="com.ibm.websphere.samples.JPAInputStream"/>
</props>
<impl-class>com.ibm.websphere.batch.devframework.datastreams.patterns.JPAReader</impl-class>
</bds>
</batch-data-streams>