Pessoal,
Quando coloco este campo , tab.cadgrupo.cadgrupoPK.codgrupo no select abaixo retorna 0 registros e tiro esta coluna do meu select ele retorna 24 registros
Fiz o select no banco e a coluna codgrupo esta em branco e gostaria de trazer os 24 registros mesmo que o codgrupo esteja em branco .
Alguem pode me ajudar ??
Fiz o seguinte select da seguinte forma .
String query = "select i.tabproc.tabprocPK.codtab,i.tabproc.tabprocPK.codproc,i.cadguiasol.codbenef.codplano.abrangencia, tab.cadgrupo.cadgrupoPK.codgrupo from Itensguiasol i left join i.tabproc tab where i.status='L' and i.cadguiasol.status='L' and i.cadguiasol.codbenef.codbenef='"+codbenef+"' order by i.itensguiasolPK.codguia,i.tabproc.tabprocPK.codproc";
pelo que percebi , esta faltando ligar as chaves entre as tabelas …
desta forma ele vai listar todos os itens , inclusive os que não tem grupo …
Veja se é isto …
coloquei assim :
from Itensguiasol i left join i.tabproc tab on i.codgrupo = tab.cadgrupo.cadgrupoPK.codgrupo
porem esta dando erro abaixo :
line 1, column 304: unexpected token [on].
você esta usando hibernate ?
mande o seu código depois das alterações …
Aleksandro,
Segue abaixo o codigo completo :
String query = "select i.tabproc.tabprocPK.codtab,i.tabproc.tabprocPK.codproc,i.tabproc.filmeM2,i.tabproc.ch,i.itensguiasolPK.codguia, i.seq,i.tabproc.cadsubgrupo.cadsubgrupoPK.codsubgrupo,i.tabproc.cadsubgrupo.cadsubgrupoPK.codtab,i.cadguiasol.codbenef.codplano.abrangencia from Itensguiasol i left join i.tabproc tab on i.codgrupo = tab.cadgrupo.cadgrupoPK.codgrupo where i.status='L' and i.cadguiasol.status='L' and i.cadguiasol.codbenef.codbenef='"+codbenef+"' order by i.itensguiasolPK.codguia,i.tabproc.tabprocPK.codproc";
return (List<Object>) emAux.createQuery(query).getResultList();
putz tem um erro grosseiro ai …rsss agora q vi …coloquei o código alinhadinho e veja o seu erro aqui …
Observe que tem um “i” perdido por ai left join i.tabproc tab
não deveria esta aqui …
portanto faça assim que deve funcionar …
Quando rolar este tipo de erro o ideal é sempre tirar o sql no console e rodar no seu BD direto …
coloquei dessa forma
from Itensguiasol i left join Tabproc tab on i.codgrupo = tab.cadgrupo.cadgrupoPK.codgrupo
porem deu erro abaixo :
java.lang.IllegalArgumentException: An exception occurred while creating a query in EntityManager:
Exception Description: Syntax error parsing the query [select i.tabproc.tabprocPK.codtab,i.tabproc.tabprocPK.codproc,i.tabproc.filmeM2,i.tabproc.ch,i.itensguiasolPK.codguia, i.seq,i.tabproc.cadsubgrupo.cadsubgrupoPK.codsubgrupo,i.tabproc.cadsubgrupo.cadsubgrupoPK.codtab,i.cadguiasol.codbenef.codplano.abrangencia from Itensguiasol i left join tabproc tab on i.codgrupo = tab.cadgrupo.cadgrupoPK.codgrupo where i.status=‘L’ and i.cadguiasol.status=‘L’ and i.cadguiasol.codbenef.codbenef=‘104010012000009’ order by i.itensguiasolPK.codguia,i.tabproc.tabprocPK.codproc].
Internal Exception: org.eclipse.persistence.internal.libraries.antlr.runtime.EarlyExitException
vc esta usando o q ? hibernate, JPA, EclipseLink, outros ?
faz assim e veja se rola …
String query = "select i from Itensguiasol i left join i.tabproc tab on i.codgrupo = tab.cadgrupo.cadgrupoPK.codgrupo where i.status='L' and i.cadguiasol.status='L' and i.cadguiasol.codbenef.codbenef='"+codbenef+"' order by i.itensguiasolPK.codguia,i.tabproc.tabprocPK.codproc";
RETURN (List <Object>) emAux.createQuery(query).getResultList();
aleksandro
deu erro :
Exception Description: Syntax error parsing the query [select i.tabproc.tabprocPK.codtab,i.tabproc.tabprocPK.codproc,i.tabproc.filmeM2,i.tabproc.ch,i.itensguiasolPK.codguia, i.itensguiasolPK.id,i.tabproc.cadsubgrupo.cadsubgrupoPK.codsubgrupo,i.tabproc.cadsubgrupo.cadsubgrupoPK.codtab,i.cadguiasol.codbenef.codplano.abrangencia from Itensguiasol i left join i.tabproc tab on i.codgrupo = tab.cadgrupo.cadgrupoPK.codgrupo where i.status=‘L’ and i.cadguiasol.status=‘L’ and i.cadguiasol.codbenef.codbenef=‘104010012000008’ order by i.itensguiasolPK.codguia,i.tabproc.tabprocPK.codproc], line 1, column 317: unexpected token [on].
Internal Exception: NoViableAltException(80@[()* loopback of 477:9: (node= join )*])
[quote=evandro_araujo]aleksandro
deu erro :
Exception Description: Syntax error parsing the query [select i.tabproc.tabprocPK.codtab,i.tabproc.tabprocPK.codproc,i.tabproc.filmeM2,i.tabproc.ch,i.itensguiasolPK.codguia, i.itensguiasolPK.id,i.tabproc.cadsubgrupo.cadsubgrupoPK.codsubgrupo,i.tabproc.cadsubgrupo.cadsubgrupoPK.codtab,i.cadguiasol.codbenef.codplano.abrangencia from Itensguiasol i left join i.tabproc tab on i.codgrupo = tab.cadgrupo.cadgrupoPK.codgrupo where i.status=‘L’ and i.cadguiasol.status=‘L’ and i.cadguiasol.codbenef.codbenef=‘104010012000008’ order by i.itensguiasolPK.codguia,i.tabproc.tabprocPK.codproc], line 1, column 317: unexpected token [on].
Internal Exception: NoViableAltException(80@[()* loopback of 477:9: (node= join )*])
[/quote]
Tá estranho porque o select q falei para você rodar não tinha nenhuma coluna selecionada , apenas select i from … e por ai vai … faz o seguinte limpe o seu projeto, coloque o select do jeito q falei para vc na msg anterior e se der o erro apontando o on , tira este pedaço do código aqui on i.codgrupo = tab.cadgrupo.cadgrupoPK.codgrupo
e roda d novo…abs