Estou desenvolvendo uma aplicação utilizando JPA, e estou necessitando fazer uma busca de usuários através de uma list de grupos.
Na classe Grupo:
@ManyToMany(mappedBy="grupos", fetch=FetchType.EAGER)
private List<Usuario> usuarios;
Na classe Usuario:
@ManyToMany(fetch=FetchType.EAGER)
@JoinTable(
name="usuario_grupo"
, joinColumns={
@JoinColumn(name="usuario_id")
}
, inverseJoinColumns={
@JoinColumn(name="grupo_id")
}
)
private List<Grupo> grupos;
A busca:
public List<Usuario> consutarViaGrupos(List <Grupo> list) throws Exception {
String query="SELECT usuario FROM Usuario usuario WHERE usuario.grupos.id IN(";
boolean a= false;
for(Grupo e:list){
if(a){
query+=",";
}
query+=" "+e.getId();
a=true;
}
query+=")";
Query q = em.createQuery(query);
List<Usuario> retorno = q.getResultList();
return retorno;
}
A busca foi só uma tentativa que não funcionou, eu não tenho nenhuma ideia de como fazer essa query. Alguém pode ajudar?