[quote=marconny]…
O JOIN é simples, mas estou tomando um erro atrás do outro desde segunda-feira.
…
[/quote]
Ahan…
E quer que a gente adivinhe quais erros estão sendo apresentados?
Outra coisa, nunca vi na vida esse tal de INNER JOIN FETCH, quando se usa isso?
marconny, você não precisa especificar os joins no HQL o proprio Hibernate vai fazer pra você através do mapeamento que já fez na entidade usando as Annotations @ManyToMany, @ManyToOne, enfim…
Sua consulta ficará da seguinte forma;
[quote=Big E]marconny, você não precisa especificar os joins no HQL o proprio Hibernate vai fazer pra você através do mapeamento que já fez na entidade usando as Annotations @ManyToMany, @ManyToOne, enfim…
Sua consulta ficará da seguinte forma;
marconny, nesse caso você especificaria o join para poder ter acesso a uma referência na sua query da seguinte forma (quase como você havia feito, só não precisa descrever o inner):
PS. O exemplo abaixo estou levando em consideração que os atributos mapeados estão na classe Usuarios que você criou.
//Uma sugestão é melhorar o nome de seus atributos e classes, por exemplo no mapeamento com Modulos (procure um nome de classe sempre no singular), utilize o nome modulo que irá
// referenciar o objeto Modulos e não apenas o seu ID (idMenu)
Query query = em.createQuery("SELECT U.numChapa, P.descricao, U.idMenu.descricao "
+ "FROM Usuarios U "
+ "JOIN FETCH U.programa as P "
+ "WHERE UPPER(U.numChapa) = :numChapa");
Porém tenha em mente que dessa forma o retorno será um array de Object, necessitando percorrer a lista e tratar os valores retornados.