persistence@glassfish.java.net

JPQL: wrong SQL for MEMBER OF query (issue 673)

From: Michael Bouschen <Michael.Bouschen_at_Sun.COM>
Date: Thu, 21 Sep 2006 15:04:58 +0200

Hi Tom, hi Jielin,

I fixed the P2 issue 673 "EEJBQL Select query with MEMBER OF generates
wrong sql": https://glassfish.dev.java.net/issues/show_bug.cgi?id=673


Method MemberOfNode.generateExpression includes some special code for
the case the MEMBER OF uses a variable that is not the base variable of
the query, e.g. ... FROM Employee e, Project p WHERE p MEMBER OF ...
This code introduces an extra ExpressionBuilder for the variable p which
leads to an additional table in the generated SQL. We do not need this
special code anymore, because we cleaned up the ExpressionBuilder
handling in the parser. The attached jar removes this code and adds new
MEMBER OF test queries (the above query and the query from issue 673).

Thanks!

Regards Michael