Can I use nested properties in the named params in my hql query? for example, "from User inner join user.person person where person.firstName =erson.firstName"
I will pass a User instance as the valueBean to findByNamedQueryAndValueBean. User has a getPerson which returns a Person which has a getFirstName.
Anyway, unless I'm doing something stupid, my testing shows that nested properties can't be used as named params in the hql. Everything seems fine until it reaches theerson.firstName. I get the following exception during configuration:
[bill] ERROR [main] ErrorCounter.reportError(35) | *** ERROR: <AST>:0:0: unexpected AST node: :
[bill] DEBUG [main] ErrorCounter.reportError(28) | <AST>:0:0: unexpected AST node: :
<AST>:0:0: unexpected AST node: :
at org.hibernate.hql.antlr.HqlSqlBaseWalker.addrExpr( HqlSqlBaseWalker.java:829)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.addrExprL hs(HqlSqlBaseWalker.java:4326)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.addrExpr( HqlSqlBaseWalker.java:752)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.expr(HqlS qlBaseWalker.java:859)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.exprOrSub query(HqlSqlBaseWalker.java:3713)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.compariso nExpr(HqlSqlBaseWalker.java:3193)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.logicalEx pr(HqlSqlBaseWalker.java:1405)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.whereClau se(HqlSqlBaseWalker.java:599)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(Hql SqlBaseWalker.java:404)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectSta tement(HqlSqlBaseWalker.java:201)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement (HqlSqlBaseWalker.java:151)
at org.hibernate.hql.ast.QueryTranslatorImpl.analyze( QueryTranslatorImpl.java:189)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompil e(QueryTranslatorImpl.java:130)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile( QueryTranslatorImpl.java:83)
at org.hibernate.impl.SessionFactoryImpl.getQuery(Ses sionFactoryImpl.java:427)
at org.hibernate.impl.SessionFactoryImpl.checkNamedQu eries(SessionFactoryImpl.java:388)
at org.hibernate.impl.SessionFactoryImpl.<init>(Sessi onFactoryImpl.java:291)
at org.hibernate.cfg.Configuration.buildSessionFactor y(Configuration.java:1005)
If I changeerson.lastName to something like :foo then it gets past configuration, but doesn't help me much for what I am trying to do.
It seems that this would be doable using BeanUtils or OGNL. Is there any implementation like this available in spring or hibernate?


erson.firstName"
Reply With Quote