Este codelab está planeado para ver la forma en que se pueden agregar entidades a un proyecto creado con JHipster.
En este ejemplo, crearemos dos entidades:
Subbrand tendrá una relación con brand de muchos a uno.
Para poder iniciar este codelab requerimos:
Para poder iniciar, debemos estar dentro del directorio principal del proyecto JHipster y agregaremos la entidad brand.
jhipster entity brand
Nos preguntará si queremos agregar un atributo, a lo que contestaremos la opción default Y
.
Después de responder que si, nos preguntará el nombre del atributo. Nosotros contestaremos name
.
Después nos preguntará el tipo de atributo, en este caso, nosotros seleccionaremos string.
Después nos preguntará si deseamos agregar reglas de validación, y ponderemos Y
. Y con la barra espaciadora habilitaremos las siguientes: Required, Minimum legth y Maximum legth.
Ahora nos preguntará el mínimo que requiere el atributo, nosotros pondremos 3.
Ahora nos preguntará el máximo que se requiere y pondremos 100.
Por último nos mostrará un resumen y nos preguntará si requerimos agregar otro atributo, a lo que contestaremos que no
Ahora nos preguntará si esta entidad tiene relaciones con otra entidad, a lo que responderemos que no.
Ahora nos preguntará que si se deben generar las capas de servicios, a lo que seleccionaremos Yes, generate a separate service interface and implementation
Ahora nos preguntará si se deben generar los DTOs, a lo que responderemos que Yes, generate a DTO with MapStruct
.
Ahora nos preguntará si se desea el filtrado dinámico, a lo que responderemos que Not needed
Ahora nos preguntará si la entidad es de sólo lectura, a lo que responderemos que no.
Ahora nos peguntará si se requiere el paginado, a lo que pondremos la opción Yes, with pagination links and sorting headers
.
Después de la última pregunta empezará a crear la entidad, pero nos preguntará si deseamos sobreescribir los archivos de liquibase, a lo que responderemos con una a
(de all)
Una vez generado, podremos observar que en el proyecto se generaron varios archivos, entre otros:
src/main/resources/config/liquibase/master.xml
, se agregó una entrada para la creación de la tabla en postgressrc/main/resources/config/liquibase/changelog
, se agregaron las definiciones de la tabla nueva para el liquibasesrc/main/resources/config/liquibase/fake-data/brand.csv
, se agregaron datos fake para las pruebas (esto lo agregará liquibase son en modo desarrollo)src/main/java/mx/conacyt/crip/ejemplos/domain/Brand.java
, defiene el POJO para JPA.src/main/java/mx/conacyt/crip/ejemplos/repository/BrandRepository.java
, define la interface para acceder a la tabla brand por medio de spring data.src/main/java/mx/conacyt/crip/ejemplos/service/dto/BrandDTO.java
, define ele DTO utilizado para intercambiar información entre el back y el front.src/main/java/mx/conacyt/crip/ejemplos/service
, se define el servicio y su implementación para que el resource (controlador) pueda acceder a los datos.src/main/webapp/app/entities/brand
, se define el modulo de administración del cliente de la entidad brand.src/main/webapp/app/shared/model/brand.model.ts
, se define la contraparte del modelo de la entidad brand pero para la vista.El total de los archivos y modificaciones, la pueden ver ejecutando el comando git status
.
Y si ejecutamos el proyecto, podremos ver que, en el menú de entidades, se tiene el submenú de Brand y dentro del mismo, podremos acceder al "administrador" de la entidad Brand
Si intentamos agregar un nuevo elemento a la tabla, observaremos que la validación se realiza como la definimos al momento de crear la entidad.
jhipster entity subBrand
Contestaremos las mismas preguntas para agregar el atributo name y contestaremos que no vamos a agregar más atributos.
Cuando nos pregunte si queremos agregar relaciones a otras entidades responderemos Y
.
Cuando nos pregunte el nombre de la entidad, pondremos brand y en el nombre de la relación dejaremos el nombre default (que es el nombre de la entidad)
En el tipo de relación, contestaremos many-to-one
En el campo que se mostrará en el cliente, escribiremos el campo name
Nos preguntará si requerimos las validaciones y contestaremos Y
y en el tipo de validaciones seleccionamos con la barra espacioadora la única disponible que es required
Nos mostrará un resumen y nos preguntará si requerimos agregar más relaciones, a lo que contestaremos que no
El resto de las preguntas las contestaremos como lo hicimos en la entidad brand.
De nuevo podemos probar la aplicación (con el comando ./mvnw
) y verificar que en la entidad nueva, se tienen objetos de tipo brand.
Intenta generar una entidad nueva que tenga como relación a subbrand y tenga todos los tipos soportados por el generador, adicionalmente, agrega varios tipos de validación.