ManyToMany в JPA: как вставить запись в таблицу соединений - PullRequest
1 голос
/ 15 февраля 2011

У меня есть 2 сущности в приложении: группы и пользователи, соединение ManyToMany между ними.Когда пользователь создан, он должен присоединиться к нескольким существующим группам.

Я видел примеры, показывающие, как обновить 3 таблицы (добавлено 2 объекта, и в таблице объединения создается новая строка).В моем случае таблица групп не должна обновляться, я получаю org.hibernate.exception.ConstraintViolationException, потому что выполняется 3 запроса, и один из них пытается вставить группу, которая уже существует в таблице.1005 *

1 Ответ

0 голосов
/ 26 апреля 2016

Таблица соединений, подобная приведенной ниже, может решить вашу проблему;

@Entity
@Table(name = "Groups")
public class Group { 

    @ManyToMany
    @JoinTable(name = "Group_Users", joinColumns = {
            @JoinColumn(name = "group_id", referencedColumnName = "id") }, inverseJoinColumns = {
            @JoinColumn(name = "user_id", referencedColumnName = "id") })
    private List<User> users;

Когда пользователь создан, он должен присоединиться к нескольким существующим группам, как эта;

Group_Users

Group_id |Идентификатор пользователя

Группа_1 |Пользователь_1

Группа_2 |Пользователь_1

Группа_3 |Пользователь_1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...