У меня есть таблица User по отношению к ManyToMany с Radio, как в таблицах ниже. В этом отношении сохраняется только метод saveUser
. Подводя итог, только доминирующая сторона сохраняется в таблице USER и RADIO_USER. Как я упорствую на другой стороне?JPA ManyToMany упорство только одна сторона
стол ПОЛЬЗОВАТЕЛЯ:
+--------------------+--------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+--------------+------+-----+-------------------+----------------+
| user_account_id | bigint(20) | NO | PRI | NULL | auto_increment |
| name | varchar(255) | YES | | NULL | |
+--------------------+--------------+------+-----+-------------------+----------------+
стол РАДИО:
+-----------------------+---------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------------+---------------+------+-----+-------------------+----------------+
| radio_id | bigint(20) | NO | PRI | NULL | auto_increment |
| name | varchar(128) | NO | | NULL | |
+-----------------------+---------------+------+-----+-------------------+----------------+
стол RADIO_USER:
+--------------------+------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+------------+------+-----+-------------------+----------------+
| account_radio_id | bigint(20) | NO | PRI | NULL | auto_increment |
| radio | bigint(20) | YES | MUL | NULL | |
| user_account | bigint(20) | YES | MUL | NULL | |
+--------------------+------------+------+-----+-------------------+----------------+
объекта пользователя:
@ManyToMany
@JoinTable(name = "RADIO_USER",
joinColumns = {@JoinColumn(name = "user_account", referencedColumnName = "user_account_id")},
inverseJoinColumns = {@JoinColumn(name = "radio", referencedColumnName = "radio_id")})
List<Radio> radios;
@Transactional
public void saveUser(User user) {
user.setRadios(radioDao.getAll(Radio.class));
entityManager.persist(user);
}
RADIO Entity:
@ManyToMany(mappedBy="radios")
List<User> users;
@Transactional
public void saveRadio(Radio radio) {
radio.setUsers(userDao.getAllUsersByRole(User.Role.ROLE_ADMIN));
entityManager.persist(radio)
}
Если я изменю доминирующую сторону, это сохраняется. – aneto