Você pode encontrar qualquer tutorial conectado com relacionamento muitos para muitos usando Hibernate/Spring Data, exemplo:Spring Data muitos-para-muitos
Com seu modelo é simples adicionar os mapeamentos de relacionamento, assim:
@Entity
public class Role {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
private String description;
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable
private Set<User> users;
}
e isto:
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String firstname;
private String lastname;
private String username;
private String password;
@ManyToMany(mappedBy = "users")
private Set<Role> roles;
}