Amigos, gerei uma list através do seguinte método:
public List liberadas(int Str_empresa) {
return manager.createQuery("SELECT em, le from gs_empresa em LEFT JOIN em.Listgs_usuario le WHERE le.Usr_IdUsuario =:IdUsuario ")
.setParameter(“IdUsuario”, Str_empresa)
.getResultList();
}
Estou tentando pegar os dados, porém quando executo
for (int linha = 0; linha < todasEmpresasLiberadas.size(); linha++) {
dentro tem um object e não estou sabendo passar desse ponto.
Como você está retornando em e le que são dois objetos diferentes, o JPA juntará todos os registros em um vetor de objetos.
Uma dúvida: o inteiro Str_empresa representa o id do usuário?
Pela sua consulta parece que você quer consultar todas as empresas que possuem um determinado usuário. Dentro da classe gs_empresa tem uma lista de gs_usuario, acredito que se você devolver apenas “em” já teria sua resposta.
Tenta fazer isso:
public List<gs_empresa> liberadas(int Str_empresa) {
return manager.createQuery("SELECT em from gs_empresa em LEFT JOIN em.Listgs_usuario le WHERE le.Usr_IdUsuario =:IdUsuario ")
.setParameter("IdUsuario", Str_empresa)
.getResultList();
}
Assim esse método devolve apenas a lista de empresas, e você pode percorrer ela com o for:
for(gs_empresa emp : todasEmpresasLiberadas) {
//lógica do seu for
}
Sugestão: Tenta seguir as boas práticas para o desenvolvimento em Java, por exemplo: não declare as classes como gs_empresa ou gs_usuario, prefira GsEmpresa e GsUsuario ou apenas Empresa e Usuario; não declare variáveis como Str_empresa, o correto seria strEmpresa, mas por começar com str parece que é uma String, mas é guardada no tipo int e você usa para compara com o id do usuário, então o melhor seria chamar de idUsuario.
Acho que é isso ai, testa para ver se funciona e qualquer coisa vai postando aqui.
Rafael,
Muito obrigado pela ajuda foi muito claro suas explicações e me ajudaram muito, vou colocar em pratica seus comentários.
Realmente Str_empresa estava errado pois era o id do usuário.
quanto a consulta só me ficou a duvida no caso se eu precisar também pegar o nome do usuário.