How to create unique constraint for 2 columns in JDL-Studio?

As far as I know, constraints are not part of JDL in a general manner. You can define such things as validations. But as for the Domain, the unique constraint is not that general anymore, it is a database level constraint, where it has to be applied.

For this, JHipster includes Liquibase. So you can find the changelog, defining the entity constraints in "src/main/resources/config/liquibase", and add a

<addUniqueConstraint tableName="airplane_model_seat" columnNames="seat_no, model_id_id"/>

to that changelog.

If you already started your application used h2 disk persistent databse, make a mvn clean / ./gradlew clean before starting your app again.


In addition to the Liquibase configuration in David's answer I suggest you also add the relevant JPA annotations to your Entity. Here is an example how:

@Table(name = "table_name",
    uniqueConstraints = {@UniqueConstraint(columnNames = {"field_1", "field_2"})})

Note that since in this case @UniqueConstraint is applied at Entity (i.e. Table) level, you can combine multiple fields into a composite unique key.

Tags:

Jhipster