PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

In Spring Boot 2, è possibile generare automaticamente una JoinTable con un vincolo univoco?

Per forzare Hibernate a creare una chiave primaria con entrambe le colonne, devi cambiare Collection per 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;
  
}

E:

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