PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Dans Spring Boot 2, est-il possible de générer automatiquement une JoinTable avec une contrainte unique ?

Pour forcer Hibernate à créer une clé primaire avec les deux colonnes, vous devez modifier Collection par Set

public class Role {
  
  @ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE})
  @JoinTable(
    name = "roles_privileges",
    joinColumns = @JoinColumn(
       name = "role_id", referencedColumnName = "id"),
    inverseJoinColumns = @JoinColumn(
       name = "privilege_id", referencedColumnName = "id"))
  private Set<Privilege> privileges;
  
}

Et :

public class Privilege {
  
  @ManyToMany(mappedBy = "privileges")
  private Set<Role> roles;
  
}