@NamedQuery(name = “UsuarioBean.listarFuncionalidades”, query = “SELECT u.perfil.relPerfilFuncionalidades.chaveComposta.funcionalidade.descricao FROM UsuarioBean u WHERE u.pontos >= u.perfil.relPerfilFuncionalidades.pontosMinimos AND u.idUsuario = UPPER(:idUsuario)”)
lança o erro:
4625 [main] ERROR org.hibernate.impl.SessionFactoryImpl - Error in named query: UsuarioBean.listarFuncionalidades
org.hibernate.QueryException: illegal attempt to dereference collection [usuariobea0_.id_usuariousuariobea0_.id_perfilperfil.relPerfilFuncionalidades] with element property reference [chaveComposta] [SELECT u.perfil.relPerfilFuncionalidades.chaveComposta.funcionalidade.descricao FROM br.fs.videos.model.UsuarioBean u WHERE u.pontos >= u.perfil.relPerfilFuncionalidades.pontosMinimos AND u.idUsuario = UPPER(:idUsuario)]
at org.hibernate.hql.ast.tree.DotNode$1.buildIllegalCollectionDereferenceException(DotNode.java:68)
at org.hibernate.hql.ast.tree.DotNode.checkLhsIsNotCollection(DotNode.java:564)
at org.hibernate.hql.ast.tree.DotNode.resolve(DotNode.java:225)
at org.hibernate.hql.ast.tree.DotNode.resolveFirstChild(DotNode.java:175)
at org.hibernate.hql.ast.HqlSqlWalker.lookupProperty(HqlSqlWalker.java:550)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.propertyRef(HqlSqlBaseWalker.java:1147)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.propertyRefLhs(HqlSqlBaseWalker.java:5167)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.propertyRef(HqlSqlBaseWalker.java:1133)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectExpr(HqlSqlBaseWalker.java:1993)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectExprList(HqlSqlBaseWalker.java:1932)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectClause(HqlSqlBaseWalker.java:1476)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:580)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:288)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:231)
at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:254)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:185)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136)
at org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:101)
at org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:80)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:94)
at org.hibernate.impl.SessionFactoryImpl.checkNamedQueries(SessionFactoryImpl.java:484)
at org.hibernate.impl.SessionFactoryImpl.(SessionFactoryImpl.java:394)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1341)
…
Alguém sabe o porque?
Os nomes de campos estão todos corretos!
