Entidades
Cada opción de la aplicación objetivo se corresponderá con un CRUD (creación, lectura, modificación y borrado) aplicado a una entidad. Por ese motivo cada opción incluye una entidad definida a través del elemento entity:
{
...
"generalOptions": [
{
"entity": {
--> definición de la entidad de la opción 1
},
--> otras características de la opción 1
},
{
"entity": {
--> definición de la entidad de la opción 2
},
--> otras características de la opción 2
},
{
"entity": {
--> definición de la entidad de la opción 3
},
--> otras características de la opción 3
},
{
...
}
],
...
}
La estructura de un objeto JSON del tipo entity es la siguiente:
{
...
"generalOptions": [
{
"entity": {
"entityName": "nombre de la entidad", ** REQUERIDO **
"entityTable": "nombre de la tabla asociada en la base de datos",
"entityDescriptionField": "campo de descripción de la entidad",
"fields": [
--> array de campos de la entidad **REQUERIDO**
]
},
--> otras características de la opción 1
},
--> otras opciones...
],
...
}
entityName
Valor: Nombre de la entidad
Tipo de datos: cadena de texto
Requerido: SÍ
Este elemento permite indicar el nombre de la entidad asociada a la opción. Debe tener en cuenta que este es el nombre de una clase Java en el código de la aplicación objetivo, por lo que debería empezar en mayúsculas, no tener espacios y usar CamelCase. Evite el uso de acentos y otros caracteres especiales que no estén permitidos en los identificadores de clases Java.
entityTable
Valor: Nombre de la tabla de la base de datos asociada a la entidad
Tipo de datos: cadena de texto
Requerido: No
Valor por Defecto: nombre de la entidad en minúsculas
La entidad estará mapeada a una tabla de la base de datos. Este elemento permite indicar el nombre que tendrá dicha tabla. Como convención, se usará un nombre en minúsculas y, en el caso de estar formado por varias palabras, se puede usar snake_case. Evite el uso de acentos y otros caracteres especiales que no estén permitidos en los nombres de tablas de la base de datos a usar.
Este elemento no es obligatorio, por lo que si no se proporciona el generador Duende le asignará el nombre de la entidad en minúsculas.
entityDescriptionField
Valor: Nombre del campo descriptivo de la entidad
Tipo de datos: cadena de texto
Requerido: No
Valor por Defecto: id
Este elemento permitirá indicar el campo de la entidad que se usará para referirse a ella de forma descriptiva para el usuario.
Por ejemplo, en una aplicación de Agenda Telefónica un campo que podría describir bien a una persona sería su nombre, en vez de su id. Si bien el nombre no es un campo unívoco de la entidad, puede ser útil a la hora de identificar a un registro en algunas situaciones concretas.
Un ejemplo de uso del campo descriptivo es la eliminación de un registro. La aplicación generada lo usa para informar al usuario acerca del registro que está eliminando.
Debe tener en cuenta que si indica este elemento, su valor debe corresponderse exactamente con un campo existente de la entidad, de lo contrario la aplicación generada podría fallar y mostrar un error 500.
Si no se indica este elemento el campo descriptivo será el id de la entidad.
fields
El elemento fields es un array JSON que permitirá definir cada uno de los campos que forman la entidad. Este array está formado por objetos JSON que describen cada uno de los campos.
El elemento fields es requerido.
Puede ver las características del elemento fields en el siguiente punto: Campos