Search code examples
umljhipsterdsljdl

Use case and difference between JHipster UML and JDL


JHipster provides some great tools for generating JPA entities and related objects and classes. The site showcases and describes comparisons between a few of these options:

  1. Using a simple questionnaire entity-subgenerator (via jhipster entity) for generating very basic entities
  2. Creating a UML with the JHipster-UML tool, or a similar UML tool
  3. Using a DSL tool called JHipster-JDL with some nice IDE plugins or JDL-Studio

The Entity Sub-Generator (for beginners)

I've found that the entity-subgenerator is lacking for advanced users and is very limited on what it can do. However, it's great for new JHipster or Java/Spring users to understand what an entity is or how JHipster works regarding code generation.

JHipster-UML or JHipster-JDL (for advanced users)

That being the case, I'd only be interested in using JHipster-UML or JHipster-JDL for entity generation. My questions pertain just to those two techniques and when I would use JHipster-UML vs. JHipster-JDL:

  1. What features does one have that the other does not have?
  2. JHipster-JDL seems to have been created specifically for JHipster while JHipster-UML seems to use existing UML DSLs. Should I only use a UML tool only if I have some tool or language-familiarity preference?

These items are not clear on the docs on the website, so I'd love some clarification. Would be happy to update the OS docs to clarify this question for others not coming in with a preference for the two and trying to decide what direction to go with them.


Solution

  • JDL is more powerful than JHipster-UML because it has more features that go beyond class modeling like generating all your microservices applications at once from one file and JHipster 6 will add more features to JDL.

    I usually recommend newcomers to start with entity sub generator because you don't have to learn a new language, you create few entities and then you use jhipster export-jdl to export these entities as JDL. From there you can easily switch to JDL only.