Boa tarde amigos do GUJ!
Bom, eu tenho o seguinte hql:
sb.append("select atr,ic from LogAtributoAlteradoImpl atr join ICImpl ic ");
sb.append("where atr.atributo='localizacao' and (atr.valor_original like '%INFORMÁTICA%' or atr.valor_alterado like '%INFORMÁTICA%') order by ic.bp ");
Mas ao executá-lo ele dá um erro com a seguinte mensagem:
Path expected for join!
Invalid path: 'ic.bp’
No data type for node: org.hibernate.hql.ast.tree.IdentNode
-[IDENT] IdentNode: ‘ic’ {originalText=ic}
A árvore que é mostrada segue abaixo:
-[QUERY] ‘query’
±[SELECT_FROM] ‘SELECT_FROM’
| ±[FROM] ‘from’
| | ±[RANGE] ‘RANGE’
| | | ±[DOT] ‘.’
| | | | ±[DOT] ‘.’
| | | | | ±[DOT] ‘.’
| | | | | | ±[DOT] ‘.’
| | | | | | | ±[DOT] ‘.’
| | | | | | | | ±[IDENT] ‘br’
| | | | | | | | -[IDENT] ‘com’
| | | | | | | -[IDENT] ‘prodesan’
| | | | | | -[IDENT] ‘jprogestic’
| | | | | -[IDENT] ‘log’
| | | | -[IDENT] ‘LogAtributoAlteradoImpl’
| | | -[ALIAS] ‘atr’
| | -[JOIN] ‘join’
| | ±[IDENT] ‘ICImpl’
| | -[ALIAS] ‘ic’
| -[SELECT] ‘select’
| ±[IDENT] ‘atr’
| -[IDENT] ‘ic’
±[WHERE] ‘where’
| -[AND] ‘and’
| ±[EQ] ‘=’
| | ±[DOT] ‘.’
| | | ±[IDENT] ‘atr’
| | | -[IDENT] ‘atributo’
| | -[QUOTED_STRING] ‘‘localizacao’’
| -[OR] ‘or’
| ±[LIKE] ‘like’
| | ±[DOT] ‘.’
| | | ±[IDENT] ‘atr’
| | | -[IDENT] ‘valor_original’
| | -[QUOTED_STRING] ‘’%INFORMÁTICA%’’
| -[LIKE] ‘like’
| ±[DOT] ‘.’
| | ±[IDENT] ‘atr’
| | -[IDENT] ‘valor_alterado’
| -[QUOTED_STRING] ‘’%INFORMÁTICA%’’
-[ORDER] ‘order’
-[DOT] '.'
±[IDENT] ‘ic’
-[IDENT] ‘bp’
Obs.: Ele reclama de ic.bp, mas na classe ICImpl tem um atributo chamado bp e eu já uso o order by ic.bp em outros hql.
A classe logEntidadeAlterada é a única que contém o id do ICImpl.
E agora???
Agradeço desde já.
