Fórum Consulta JPQL @ManyToMany com tabelas (não relacionadas diretamente) #493020
21/09/2014
0
Possuo um sistema que contém as entidades Usuario, GrupoDeTrabalho, Projeto... As mesmas estão relacionadas da seguinte forma: Usuário/GrupoDeTrabalho através de um @ManyToMany e GrupoDeTrabalho/Projeto através de um @ManyToMany, segue o código dos relacionamentos:
public class Usuario implements Serializable {
@ManyToMany
@JoinTable(name="tb_grupo_usuario", joinColumns=@JoinColumn(name="gus_usuario", nullable=false), inverseJoinColumns=@JoinColumn(name="gus_grupotrabalho"))
private List<Grupotrabalho> grupostrabalhos = new LinkedList<>();
}public class Grupotrabalho implements Serializable {
@ManyToMany
@JoinTable(name="tb_projeto_grupo", joinColumns=@JoinColumn(name="pgr_grupotrabalho", nullable=false), inverseJoinColumns=@JoinColumn(name="pgr_projeto"))
private List<Projeto> projetos = new LinkedList<>();
//bi-directional many-to-many association to Usuario
@ManyToMany(mappedBy="grupostrabalhos")
private List<Usuario> usuarios = new LinkedList<>();
}
public class Projeto implements Serializable {
@ManyToMany(mappedBy="projetos")
private List<Grupotrabalho> grupostrabalhos = new LinkedList<>();
}
Como podem ver tenho como o "lado forte" do relacionamento Usuario/GrupoDeTrabalho a entidade Usuário, e no relacionamento GrupoDeTrabalho/Projeto o "lado forte" é o Grupo...
Estou tentando criar um método que retorne todos usuários passando o ID de um projeto como parametro através de uma consulta JPQL.. "getUsuariosPorProjeto" e vice-versa "getProjetosPorUsuario"
Como podem perceber as entidades Usuário e Projeto não estão diretamente relacionadas, mas as duas possuem alguma relação com o Grupo de trabalho, já pesquisei conceitos de subquery mas não estou conseguindo aplicar, alguém com alguma luz ???
Obrigado ! Até mais!!!
Bruno Santana
Curtir tópico
+ 0Post mais votado
22/09/2014
SELECT u FROM Projeto pr JOIN FETCH pr.groupstrabalhos gt JOIN FETCH gt.usuarios u WHERE pr.id = :idProjeto
Ronaldo Lanhellas
Gostei + 1
Mais Posts
22/09/2014
Bruno Santana
Muito obrigado, vc tem algum site e/ou livro para indicar onde posso dar uma consultada nesse conceito de JOIN FETCH ?!?! até entao não tinha visto sobre isso... valeu !!!!!
Abraços, até mais!
Gostei + 0
22/09/2014
Ronaldo Lanhellas
https://docs.jboss.org/hibernate/orm/3.5/reference/pt-BR/html/queryhql.html#queryhql-joins
Gostei + 1
Clique aqui para fazer login e interagir na Comunidade :)