如何在JDL-Studio中为2列创建唯一约束?

Hal*_*lil 4 jhipster

我有以下实体配置:

entity AirplaneModelSeat { 
    id Long, 
    seatNo String required 
}
relationship ManyToOne   { 
    AirplaneModelSeat{modelId(model)} to AirplaneModel 
}
Run Code Online (Sandbox Code Playgroud)

此实体配置创建了这样一个表:

+-------------+--------------+------+-----+---------+----------------+
| Field       | Type         | Null | Key | Default | Extra          |
+-------------+--------------+------+-----+---------+----------------+
| id          | bigint(20)   | NO   | PRI | NULL    | auto_increment |
| seat_no     | varchar(255) | NO   |     | NULL    |                |
| model_id_id | bigint(20)   | YES  | MUL | NULL    |                |
+-------------+--------------+------+-----+---------+----------------+
Run Code Online (Sandbox Code Playgroud)

如何在JDL-Studio中为(seat_no,model_id_id)列组合应用唯一约束?

如果在JDL-Studioi中无法实现这一点,还有其他任何方法可以实现这一目标吗?

Dav*_*man 9

据我所知,约束不是一般方式的JDL的一部分.您可以定义验证等内容.但是对于Domain,唯一约束不再是一般的,它是一个数据库级约束,必须应用它.

为此,JHipster包括Liquibase.所以你可以找到更改日志,在"src/main/resources/config/liquibase"中定义实体约束,并添加一个

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

到那个更改日志.

如果您已经启动了应用程序使用了h2 disk persistent databse,请在再次启动应用程序之前进行mvn clean/ ./gradlew clean.