I have the table User in relation of ManyToMany with Radio like the tables below. In this relation only the method saveUser
persist in relationship table. To summarize only the dominant side is persisted in USER and RADIO_USER table. How I persist the other side?
table USER:
+--------------------+--------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+--------------+------+-----+-------------------+----------------+
| user_account_id | bigint(20) | NO | PRI | NULL | auto_increment |
| name | varchar(255) | YES | | NULL | |
+--------------------+--------------+------+-----+-------------------+----------------+
table RADIO:
+-----------------------+---------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------------+---------------+------+-----+-------------------+----------------+
| radio_id | bigint(20) | NO | PRI | NULL | auto_increment |
| name | varchar(128) | NO | | NULL | |
+-----------------------+---------------+------+-----+-------------------+----------------+
table 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 | |
+--------------------+------------+------+-----+-------------------+----------------+
USER Entity:
@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)
}