Ola.
Estou tendo problemas no hibernate pois nao consigo gravar os relacionamentos entre as tabelas.
Eu tenho 3 tabelas: users, role, users_x_role
Duas classes: Users, Role
E segue abaixo como ficou o relacionamento nas classes, feito pelo proprio hibernate tools
public class Users implements Serializable {
....
private Set<Role> roles = new HashSet<Role>(0);
public void setRoles(Set<Role> roles) {
this.roles = roles;
}
//Esse eu mesmo criei
public void setRoles(List<Role> roles) {
this.roles = new HashSet<Role>(0);
this.roles.addAll(roles);
}
....
}
public class Role implements Serializable {
....
private Set<Users> userses = new HashSet<Users>(0);
//idem ao de cima
...
}
O que nao entendo é como fazer para gravar um usuario com determinadas regras… e vice-versa
o codigo abaixo é um exemplo do que ja tentei fazer, porem nao obtive sucesso. Desde ja muito obrigado
PersonBO personBO = new PersonBO();
//Coleta as listas da sessao
List users = (List)usersList.getWrappedData();
List roles = (List)roleList.getWrappedData();
//Cria as listas os quais o usuario selecionou
List<Users> usersSelected = new LinkedList<Users>();
List<Role> rolesSelected = new LinkedList<Role>();
//Coleta somente os usuarios selecionados
for(int index = 0; index < users.size(); index++){
Users userSelected = (Users)users.get(index);
if(userSelected.isMarked())
usersSelected.add(userSelected);
}
//Coleta somente as regras selecionadas
for(int index = 0; index < rolesSelected.size(); index++){
Role roleSelected = (Role)roles.get(index);
if(roleSelected.isMarked())
rolesSelected.add(roleSelected);
}
for(int index = 0; index < usersSelected.size(); index++)
usersSelected.get(index).setRoles(rolesSelected);
for(int index = 0; index < rolesSelected.size(); index++)
rolesSelected.get(index).setUserses(usersSelected);
for(int index = 0; index < usersSelected.size(); index++)
personBO.makeUsersPersistent(usersSelected.get(index));