Después de generar una aplicación con JHipster, esta se encontrá vacia de contenido a no ser que generemos entidades, tendrá la funcinalidad básica, control de acceso, autentificación y autorización, tendrá implementada la internacionalización, etc. pero no podremos hacer mucho más porque no contamos con entidades.
Para generar entidades tenemos dos opciones:
En lo que a la interfaz de usuario se refiere nos preguntará si queremos paginación y de que tipo.
Y en lo que a la arquitectura se refiere nos preguntará si queremos crear un DTO (Data transefer Object, o Objeto de Transferencia de Datos) o si queremos usar la entidad directamente.
Finalmente nos informará de los ficheros que genera.
Este este es el diagrama ejemplo que podemos encontrar en jdl- studio.
A mi esta herramienta me gusta bastante, a medida que diseñas las entidades mediante la edición de texto, puedes ver la representación en la parte de la derecha, por ejemplo, la entidad Empleado tiene la siguiente pinta:
entity Employee {
/**
* The firstname attribute.
*/
firstName String,
lastName String,
email String,
phoneNumber String,
hireDate ZonedDateTime,
salary Long,
commissionPct Long
}
Una vez que estamos contentos con el modelo, sólo tenemos que descargar el fichero y utilizar el comando:
Para generar entidades tenemos dos opciones:
Generar las entidades una a una.
Con el siguiente comando:yo jhipster:entity EntityNameDonde EntityName es el nombre de la entidad que queremos generar, jhipster nos preguntará si queremos añadir campos a esta entidad, el nombre del campo, el tipo, si queremos validaciones básicas sobre este campo, como que sea obligatorio, o una longitud mínima, si queremos relaciones con otras entidades.
En lo que a la interfaz de usuario se refiere nos preguntará si queremos paginación y de que tipo.
Y en lo que a la arquitectura se refiere nos preguntará si queremos crear un DTO (Data transefer Object, o Objeto de Transferencia de Datos) o si queremos usar la entidad directamente.
Finalmente nos informará de los ficheros que genera.
~$ yo jhipster:entity entity
The entity entity is being created.
Generating field #1
? Do you want to add a field to your entity? Yes
? What is the name of your field? field1
? What is the type of your field? String
? Do you want to add validation rules to your field? Yes
? Which validation rules do you want to add? Required, Minimum length
? What is the minimum length of your field? 10
================= Entity =================
Fields
field1 (String) required minlength='10'
Generating field #2
? Do you want to add a field to your entity? No
================= Entity =================
Fields
field1 (String) required minlength='10'
Generating relationships to other entities
? Do you want to add a relationship to another entity? Yes
? What is the name of the other entity? user
? What is the name of the relationship? user
? What is the type of the relationship? one-to-one
================= Entity =================
Fields
field1 (String) required minlength='10'
Relationships
user (User) one-to-one
Generating relationships to other entities
? Do you want to add a relationship to another entity? No
================= Entity =================
Fields
field1 (String) required minlength='10'
Relationships
user (User) one-to-one
? Do you want to use a Data Transfer Object (DTO)? No, use the entity directly
? Do you want to use separate service class for your business logic? No, the REST controller should use the repository
directly
? Do you want pagination on your entity? Yes, with a simple pager
Everything is configured, generating the entity...
create .jhipster\Entity.json
create src\main\resources\config\liquibase\changelog\20161208212848_added_entity_Entity.xml
create src\main\resources\config\liquibase\changelog\20161208212848_added_entity_constraints_Entity.xml
conflict src\main\resources\config\liquibase\master.xml
? Overwrite src\main\resources\config\liquibase\master.xml? overwrite this and all others
force src\main\resources\config\liquibase\master.xml
create src\main\java\com\jlg\basketshop\domain\Entity.java
create src\main\java\com\jlg\basketshop\repository\EntityRepository.java
create src\main\java\com\jlg\basketshop\repository\search\EntitySearchRepository.java
create src\main\java\com\jlg\basketshop\web\rest\EntityResource.java
force src\main\resources\ehcache.xml
create src\main\webapp\app\entities\entity\entities.html
create src\main\webapp\app\entities\entity\entity-detail.html
create src\main\webapp\app\entities\entity\entity-dialog.html
create src\main\webapp\app\entities\entity\entity-delete-dialog.html
force src\main\webapp\app\layouts\navbar\navbar.html
create src\main\webapp\app\entities\entity\entity.state.js
create src\main\webapp\app\entities\entity\entity.controller.js
create src\main\webapp\app\entities\entity\entity-dialog.controller.js
create src\main\webapp\app\entities\entity\entity-delete-dialog.controller.js
create src\main\webapp\app\entities\entity\entity-detail.controller.js
create src\main\webapp\app\entities\entity\entity.service.js
create src\main\webapp\app\entities\entity\entity.search.service.js
create src\main\webapp\i18n\en\entity.json
force src\main\webapp\i18n\en\global.json
create src\main\webapp\i18n\es\entity.json
force src\main\webapp\i18n\es\global.json
create src\test\javascript\spec\app\entities\entity\entity-detail.controller.spec.js
create src\test\java\com\jlg\basketshop\web\rest\EntityResourceIntTest.java
create src\test\gatling\simulations\EntityGatlingTest.scala
Running gulp Inject to add javascript to index
Generar todas las entidades y sus relaciones de golpe a partir de una representación del modelo.
La otra forma de generar las entidades, es utilizar jdl-studio para diseñar el modelo, entidades y relaciones, exportar ese modelo a un fichero en formato json, y después utilizar ese fichero como entrada para generar todas las entidades de una sóla vez.Este este es el diagrama ejemplo que podemos encontrar en jdl- studio.
A mi esta herramienta me gusta bastante, a medida que diseñas las entidades mediante la edición de texto, puedes ver la representación en la parte de la derecha, por ejemplo, la entidad Empleado tiene la siguiente pinta:
entity Employee {
/**
* The firstname attribute.
*/
firstName String,
lastName String,
email String,
phoneNumber String,
hireDate ZonedDateTime,
salary Long,
commissionPct Long
}
Una vez que estamos contentos con el modelo, sólo tenemos que descargar el fichero y utilizar el comando:
yo jhipster:import-jdl jhipster-jdl.jh
En este caso he llamado al fichero con el modelo, "jhipster-jdl.jh".