Search code examples
javamysqljhipsterjdl

JHipster - import-jdl - Field has jhi_ added to name


I've created a new JHipster project, used JDL Studio to create a .jh schema file, and added it to the project. After doing the import-jdl and project rebuild, one of my fields has had 'jhi_' added to the name.

Can anyone shed light on this? I'm guessing maybe I've used a reserved word. But I can't find a list of JHipster's reserved words, if there are any.

Thanks in advance.

Full details:

JHipster generation options: monolithic, not using Registry, JWT authentication, MySQL database, Hazelcast cache implementation, 2nd level cache enabled, Gradle, WebSockets, Angular, SASS, no internationalisation, Protractor, no other generators.

The field affected is the cost field in this JDL definition:

entity Product {
    description String required maxlength(100)
    price BigDecimal required min(0)
    cost BigDecimal required min(0)
    weight Integer min(0)
    barcode String required maxlength(13)
    shelfLife Integer min(0)
    isActive Boolean required
    lastModified Instant required
}

And its relationships:

relationship OneToMany {
   Product to Shelf{product (description) required},
   Product to TransactionItem{product (description) required}

}

It appears in the MySQL database, and in all generated code, as jhi_cost

All other fields are appearing exactly as I expect.


Solution

  • COST is listed as a reserved word for Oracle in the generator (see oracle.js) so it gets prefixed when you select Oracle as target database. The prefix is globally configurable using --jhi-prefix command line option. You say you use MySQL so it's a bit surprising as COST is not included in mysql.js so maybe there's a bug you should report on github with your project setup.