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

前端 未结 3 424
走了就别回头了
走了就别回头了 2021-02-05 22:07

I have following entity configuration:

entity AirplaneModelSeat { 
    id Long, 
    seatNo String required 
}
relationship ManyToOne   { 
    AirplaneModelSeat{         


        
相关标签:
3条回答
  • 2021-02-05 22:43

    In addition to Oerd's answer ^_^ In addition to the Liquibase configuration in David's answer I suggest you also add the relevant JPA annotations to your Entity.

    If only To ensure a field value is unique you can write

    @Column(unique=true)
    String username;
    

    The @UniqueConstraint annotation is for annotating multiple unique keys at the table level.

    And also for Liquibase configuration, iff only To ensure a field value is unique you can write

      <column name="username" type="varchar(255)">
         <constraints nullable="true" unique="true" />
      </column>
    
    0 讨论(0)
  • 2021-02-05 22:48

    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.

    0 讨论(0)
  • 2021-02-05 22:55

    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.

    0 讨论(0)
提交回复
热议问题