Pessoal, estou com problemas para gravar no hibernate um relacionamento de n-n ! Ja estou quebrando a cabeça alguns dias. Alguem teve o mesmo problema e poderia me ajudar ? desde já muito obrigado.
eu tenho as seguintes tabelas:
users; role; users_x_role.
e os seguintes mapeamentos no hibernate
Users; Role
@HibernateTransaction
public void makeUsersPersistent(Set<Users> arg, Set<Role> roles){
DAOFactory factory = DAOFactory.getDAOFactory(DAOFactory.HIBERNATE);
UsersDAO usersDAO = factory.getUsersDAO();
for(Users user: arg){
for(Role role: roles){
role.getUserses().add(user);
user.getRoles().add(role);
}
usersDAO.makePersistent(user);
}
}
public T makePersistent(T entity) {
getSession().saveOrUpdate(entity);
return entity;
}
//usersList é um componentes do myFaces. (ListDataModel) usado para montar a grid no JSP
public void makeUsersPersistent(){
UserBO usersBO = new UserBO();
List<Users> users = (List<Users>)usersList.getWrappedData();
List<Role> roles = (List<Role>)roleList.getWrappedData();
Set<Role> rolesSelected = new HashSet<Role>(0);
Set<Users> usersSelected = new HashSet<Users>(0);
for(Role role : roles)
if(role.isMarked())
rolesSelected.add(role);
for(Users user : users)
if(user.isMarked())
usersSelected.add(user);
usersBO.makeUsersPersistent(usersSelected, rolesSelected);
}