PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Ist es in Spring Boot 2 möglich, eine JoinTable mit einer eindeutigen Einschränkung automatisch zu generieren?

Um Hibernate zu zwingen, einen Primärschlüssel mit beiden Spalten zu erstellen, müssen Sie Collection ändern durch 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;
  
}

Und:

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