Eu fiz um mapeamento do many-to-many entre usuario e grupo
tem uma tabela que relaciona usuario com grupos
Como eu realizo um caso de teste:
Usuario usr = new Usuario();
usr.setLogin("dan");
usr.setSenha("123");
Grupo gr1 = new Grupo();
gr1.setNome("admin");
Grupo gr2 = new Grupo();
gr2.setNome("gestor");
usr.getGrupos().add(gr1);
usr.getGrupos().add(gr2);
usuarioDao.save(usr); //ocorre uma chamada getJpaTemplate().persist ...
So que nao funciona. Como fazer um caso de teste?
Antes eu usava dirty read e agora?
O many-to-many é bidirecional? Como está o mapeamento de ambas as classes?
Quinger
Olá!
Estou com o mesmo caso, um usuário tem grupos e eu preciso atualizar o objeto Usuário, e caso tenha adcionado grupos ele deve persistir em uma tabela associativa.
Fiz o mapeamento bidirecional com JPA.
felipeguerra
Eu fiz algo pareido, mas ainda não testei todos cenários:
publicclassPessoaimplementsSerializable{publicPessoa(){}privatestaticfinallongserialVersionUID=-7200710621590602711L;privateSet<Carona>caronas=newHashSet<Carona>();/** * Getter of the property <tt>carona</tt> * * @return Returns the carona. * */@ManyToMany(cascade={CascadeType.ALL},fetch=FetchType.EAGER)@JoinTable(name="Pessoa_Carona",joinColumns={@JoinColumn(name="idPessoa")},inverseJoinColumns={@JoinColumn(name="idCarona")})publicSet<Carona>getCaronas(){returncaronas;}}
Depois eu adiciona uma pessoa aos passageiros e a carona ao passageiro, depois dou um merge na pessoa;
71C4700
Acredito que da maneira que felipeguerra esta fazendo esta correto.
Pois devemos persistir a entidade que possui a chave estrgandeira.
Mesmo sendo ManyToMany.
vlw
Quinger
Mas não funcionou.
Tem um caso muito semelhante ao do felipeguerra . A única diferença é que minha chave-primária é um varchar.
Minha arquitetura está utilizando Spring + JPA/Hibernate como vendor.