Java 同一列上的多个复合唯一约束

Java 同一列上的多个复合唯一约束,java,hibernate,spring-boot,spring-data-jpa,Java,Hibernate,Spring Boot,Spring Data Jpa,我有一个实体,在同一列上有两个唯一的约束: @Entity @Table(name="checklist_item", schema = "general", uniqueConstraints = {@UniqueConstraint(name = "uq_general_checklist_ordinal", columnNames = {"checklist_id", "ordinal"}),

我有一个实体,在同一列上有两个唯一的约束:

@Entity
@Table(name="checklist_item", schema = "general",       
        uniqueConstraints = {@UniqueConstraint(name = "uq_general_checklist_ordinal",
                             columnNames = {"checklist_id", "ordinal"}),                             
                             @UniqueConstraint(name = "uq_general_checklist_ordinal",
                                     columnNames = {"checklist_id", "name"})                           
                             }
      )
public class ChecklistItem extends RecordInfo {

    @NotNull
    @Column
    @Length(max = 30)
    private String name;

    @Column
    @NotNull
    private long ordinal;

    @Column
    private String comment;

    @ManyToOne(fetch = FetchType.LAZY)
    @Cascade(org.hibernate.annotations.CascadeType.DELETE)
    @JoinColumn(name="checklist_id", foreignKey = @ForeignKey(name = "fk_general_checklist_checklistitem"))
    private Checklist checklist;

我试图创建两个独立的唯一约束组合:[(checklist_id,name),(checklist_id,ordinal),但hibernate创建了一个组合的唯一约束,正如我在日志中看到的:

Hibernate:alter table general.checklist\u item add constraint uq\u general\u checklist\u ordinal unique(checklist\u id,ordinal,name)

Hibernate版本为
5.4.6.最终版


由于这两件事并不等同,在同一列上创建两个单独的复合唯一约束的正确方法是什么?

重复您的
@UniqueConstraint
名称