Entendiendo el EntityResult

Introducción

En este ejercicio veremos la estructura con la que devuelve Ontimize Boot la respuesta de las peticiones que se le hagan, y como podemos nosotros trabajar con ella, además de los diferentes métodos que tiene para obtener y manejar la información.

EntityResult

El EntityResult es una interfaz actualmente implementada por la clase EntityResultMapImpl que además implementa la interfaz Map, permitiendo almacenar el resultado de las consultas generadas contra la base de datos.

tutorial_11.png

Según la imagen superior, podemos comprobar que esta representación es un mapa de claves-valores, siendo las claves las columnas que ha consultado/obtenido de la BD y los valores una lista con los datos de todos los registros que ha obtenido en dicha consulta. La posición de los elementos dentro de la lista, indica los valores de los registros que se han obtenido. De esta manera, todos los elementos situados en la posición 0 de la lista corresponderán al primer registro que se ha devuelto desde la BD, los valores en la posición 1, los del registro número 2 y así sucesivamente.

Métodos propios

Además de los métodos heredados de la clase Hashtable, la clase EntityResult cuenta también con sus propios métodos:

Método Descripción
int calculateRecordNumber() Devuelve el número de registros que contiene el EntityResult. Si el resultado es 0, significa que el EntityResult está vacío y no ha traído registros de la BD
Map getRecordValues(int i) Devuelve un Hashmap con el registro en la posición i que se le ha pasado por parámetro. Como clave tendrá el nombre de la columna y como valor tendrá el valor de dicho registro para esa columna
int getRecordIndex(Map kv) Devuelve el índice del registro que cumpla las condiciones establecidas por el HashMap pasado como parámetro
addRecord(Map data) Añade el HashMap pasado como parámetro al EntityResult como último valor. En caso de querer insertarlo en una posición específica, se indicará la posición como segundo parámetro. Para que el EntityResult sea correcto, necesita que todos las listas que contengan sean del mismo tamaño, por lo que si queremos añadir una columna cuyo valor sea null al EntityResult, nuestro Hashmap tiene que contener como clave la columna que tendrá valor null y como valor una instancia del objeto NullValue. Esto es debido a que los Hashmap no pueden tener elementos null como valor.
addRecord(Map data, int s)
setCode(int operationCode)

Establece el código de operación del EntityResult. Cuando un EntityResult llega al servidor, puede tener 3 códigos de operación:

  • OPERATION_SUCCESSFUL: La operación ha sido realizada de manera correcta
  • OPERATION_SUCCESSFUL_SHOW_MESSAGE: La operación ha sido realizada de manera correcta, y contiene un mensaje específico
  • OPERATION_WRONG: La operación ha sido incorrecta y ha dado un error
int getCode()

Devuelve el código de la operación:

  • OPERATION_SUCCESSFUL: 0
  • OPERATION_SUCCESSFUL_SHOW_MESSAGE: 2
  • OPERATION_WRONG: 1
setMessage(String message) Añade un mensaje al EntityResult
String getMessage() Recupera el mensaje que contenga el EntityResult

arrow_back Tutorial anterior Próximo tutorial arrow_forward