Problem occures when I try to add new user and set its roles to one that was assigned to previous user.
Error:Detatch entity passed to persist: com.example.UserService.Model.Roles
I want to be able to add user and set roles from user side and on roles table it should add roles if the role doesnt exist..Where am I doing it wrong?
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String username;
@Column(unique = true)
private String email;
private String password;
@ManyToMany(cascade = {CascadeType.ALL},fetch = FetchType.LAZY)
@JoinTable(
name="user_roles",
joinColumns = @JoinColumn(name = "user_id"),
inverseJoinColumns = @JoinColumn(name="role_id")
)
private Set<Roles> UserRoles=new HashSet<>();
}
public class Roles {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
private String name;
//
@ManyToMany(mappedBy = "UserRoles")
private List<User> users=new ArrayList<>();
}
///////////////// I am setting user as
User ua=new User();
ua.setEmail("asdasdad");
ua.setPassword("asdasd");
ua.setUsername("ua");
ua.setUserRoles(UserRole);
User ub=new User();
ub.setEmail("asdasdada");
ub.setPassword("asdasda");
ub.setUsername("ub");
ub.setUserRoles(MixedRole);
User uc=new User();
uc.setEmail("asdasdadaasdas");
uc.setPassword("asdasda");
uc.setUsername("uc");
uc.setUserRoles(UserRole);
userService.save(ua);
userService.save(ub);
userService.save(uc);