sql >> Base de Datos >  >> RDS >> PostgreSQL

En Spring Boot 2, ¿es posible generar automáticamente una JoinTable con una restricción única?

Para obligar a Hibernate a crear una clave principal con ambas columnas, debe cambiar Collection por 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;
  
}

Y:

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