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.