Создание сущностных POJO-классов в IntelliJ IDEA из таблиц базы данных с отношением Многие-Ко-Многим:
- Выбрать вторую таблицу отношения (первая уже выбрана);
- Прописать имя свойства, которое должно быть добавлено к этому объекту из другой сущности, - groupSet;
- Прописать имя свойства, которое должно быть добавлено к этому объекту из другой сущности, - userSet;
- Выбрать тип свойства - Set<> (в случае М2М);
- Выбрать служебную, связывающую таблицу (Join Table);
- Сопоставляем ключевые поля связанных таблиц с полями связывающей.
@Entity public class User { private int id; private String username; private String password; private Set<Group> groupSet; ..... @ManyToMany @JoinTable(name = "link_user_group", joinColumns = @JoinColumn(name = "user_id", referencedColumnName = "id", nullable = false), inverseJoinColumns = @JoinColumn(name = "group_id", referencedColumnName = "id", nullable = false)) public Set<Group> getGroupSet() { return groupSet; } public void setGroupSet(Set<Group> groupSet) { this.groupSet = groupSet; } }
@Entity public class Group { private int id; private String name; private Set<User> userSet; ..... @ManyToMany(mappedBy = "groupSet") public Set<User> getUserSet() { return userSet; } public void setUserSet(Set<User> userSet) { this.userSet = userSet; } }