У меня много-много отношений с пользователями и ролями.Пользователь является владельцем отношений и имеет CascadeType.ALL.Когда я заполняю базу данных, я сначала создаю пользователей, создаю роли и назначаю роли пользователям.После этого я сохраняю всех пользователей в репозитории.
Я думаю, что поскольку я сохраняю пользователей, роли также сохраняются в базе данных из-за каскадного типа, но ошибка, о которой я говорю, упоминается вtitle.
Пользователь:
@Entity
public class User {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(
name = "users_roles",
joinColumns = @JoinColumn(
name = "user_id", referencedColumnName = "id"),
inverseJoinColumns = @JoinColumn(
name = "role_id", referencedColumnName = "id"))
private List<Role> roles;
Роль:
@Entity
public class Role {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@JsonIgnore
@ManyToMany
private List<User> users;
Код, используемый для заполнения базы данных:
User user1= new User();
User user2= new User();
Role role1 = new Role();
Role role2 = new Role();
user1.addRole(role1);
user2.addRole(role1);
user2.addRole(role2);
role1.addUser(user1);
role1.addUser(user2);
role2.addUser(user2);
userRepository.save(user1);
userRepository.save(user2);
Любая помощьпризнателен!
РЕДАКТИРОВАТЬ: Я обнаружил, что проблема возникает только тогда, когда я добавляю несколько ролей для одного и того же пользователя и обновил код.