KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Can you please help me how to join three tables with one common join table? I have USER, APPLICATION, and ROLE tables. And I want thier IDs to be joined in a table named USER_APP_ROLE(user.ID, application.ID, role.ID). When I remove either Application or Role tables in Join Many to Many my code is working. I have done the following codes: User.java @ManyToMany (targetEntity=Role.class) @JoinTable(name="USER_APPLICATION_ROLE", joinColumns=@JoinColumn(name="USER_ID"), inverseJoinColumns=@JoinColumn(name="ROLE_ID")) private Collection<Role> roles; @ManyToMany (targetEntity=Application.class) @JoinTable(name="USER_APPLICATION_ROLE", joinColumns=@JoinColumn(name="USER_ID"), inverseJoinColumns=@JoinColumn(name="APPLICATION_ID")) private Collection<Application> applications; Role.java @ManyToMany(mappedBy="roles", targetEntity=User.class) private Collection<User> users = new ArrayList<User>(); Application.java @ManyToMany(mappedBy="applications", targetEntity=User.class) private Collection<User> users = new ArrayList<User>(); When I tried to run the following test: user.getRoles().add(role1); user.getRoles().add(role2); role1.getUsers().add(user); role1.getUsers().add(user); role2.getUsers().add(user); role2.getUsers().add(user); user.getApplications().add(app1); user.getApplications().add(app2); app1.getUsers().add(user); app2.getUsers().add(user); ...... session.beginTransaction(); session.save(user); session.save(role1); session.save(role2); session.save(app1); session.save(app2); I get the following error: Hibernate: select seq_cm_user.nextval from dual Hibernate: select seq_role.nextval from dual Hibernate: select seq_role.nextval from dual Hibernate: se
Tags (comma-separated)
Save Edits
Cancel