...
En esta release se libera una funcionalidad en la que a partir de unas entidades relacionadas en plataforma (BD relacional), se puedan realizar consultas, inserciones y actualizaciones de manera compacta, a través de la entidad padre.
Caso de ejemplo
...
¿Cómo usar la funcionalidad?
Para entender la funcionalidad utilizaremos el ejemplo de modelo de datos USER → USER_TOKEN, con relación 1-N (ONE TO MANY)
Paso 1: Creación de relaciones
Entidad padre
En primer lugar crearemos las relaciones entre entidades en plataforma, las mismas que existen en nuestro modelo Java o en la misma base de datos relacional.
...
Una vez añadida la referencia, cerramos el pop-up y se añadirá al JSON Schema el atributo ‘_references’.
...
Entidad hija
En caso de que sea una relación bidireccional del mismo nivel, podríamos agregar la relación en la entidad hija de la misma forma.
Paso 2: Consultas sobre las Entidades
Si hacemos una select convencional, obtendremos lo siguiente:
...
Al haber creado las relaciones en el modelo de entidades, ahora al hacer un JOIN de las dos tablas, nos vendrá la relación anidada, en este caso como es un ONE TO MANY será un array:
...
Paso 3: Consultas con Función EXPAND
Se ha creado una función nueva denominada EXPAND con la que podremos realizar consultas que nos traigan todos los datos de la entidades relacionadas sin necesidad de realizar JOINs.
...
Si indicamos argumentos en la función EXPAND(), hay que tener en cuenta que solo se tendrá un nivel de anidación, en caso de que las entidades relacionadas tengan a su vez otras relaciones, estas no se mostrarán, como es el caso de API->API_OPERATION->API_QUERY_PARAMETER
...
Paso 4: Inserciones
Para el ejemplo, utilizaremos el CRUD de entidades, aunque esto aplica para inserciones a través del API Manager, IoT Broker…
...
NOTA: en caso de intentar insertar un registro con un ID que ya exista, se devolverá un error.
...
...
Paso 5: Updates
Para el ejemplo actualizaremos un registro desde el CRUD de entidades.
...