What if save reports to detached entity passed to persist when @ ManyToMany CascadeType.ALL
This article introduces how to do save newspaper detached entity passed to persist when @ ManyToMany CascadeType.ALL. The content is very detailed. Interested friends can use it for reference. I hope it will be helpful to you.
First, there are two entities, user, role, user-role intermediate table. The relationship is as follows: public class User {@ ManyToMany (cascade = CascadeType.ALL) @ JoinTable (name = "user_role", joinColumns = @ JoinColumn (name = "user_id"), inverseJoinColumns = @ JoinColumn (name = "role_id") private Set groups = new HashSet (); / / omit getter, setter} II. Save data User code as follows: User user = new User (); Group g = groupRepo.findById (8) / / Database query Set gruops = new HashSet (); gruops.add (g); user.setGroups (gruops); userRepo.save (user)
UserRepo.save (user); error detached entity passed to persist occurs when saving data.
Error reason: when saving user, I want to cascade save gruops. But gruop already has an id value. So report the wrong message.
Solution, put user.setGroups (gruops); after saving the user. As follows:
User user = new User (); userRepo.save (user); / / Save userGroup g = groupRepo.findById (8) first; / / Database query Set gruops = new HashSet (); gruops.add (g); user.setGroups (gruops); / / then set groupsuserRepo.save (user) / / finally update user about @ ManyToMany CascadeType.ALL what to do with save newspaper detached entity passed to persist to share here. I hope the above content can be helpful to everyone and learn more knowledge. If you think the article is good, you can share it for more people to see.