Hi,
I just played around with ODMG and tried to execute the following OQL: "select x from myClass where attribute is not in ( select distinct y.id from anotherClass )" During OQLQuery q.create(oql) OJB writes a message to stderr with "unexpected token (select)" and throws an Exception: java.lang.NoSuchMethodError: org.apache.ojb.odmg.oql.OQLParser.recover(Lantlr/RecognitionException;Lantlr/collections/impl/BitSet;)V at org.apache.ojb.odmg.oql.OQLParser.argList(Unknown Source) at org.apache.ojb.odmg.oql.OQLParser.inExpr(Unknown Source) at org.apache.ojb.odmg.oql.OQLParser.quantifierExpr(Unknown Source) at org.apache.ojb.odmg.oql.OQLParser.andExpr(Unknown Source) at org.apache.ojb.odmg.oql.OQLParser.orExpr(Unknown Source) at org.apache.ojb.odmg.oql.OQLParser.whereClause(Unknown Source) at org.apache.ojb.odmg.oql.OQLParser.selectQuery(Unknown Source) at org.apache.ojb.odmg.oql.OQLParser.buildQuery(Unknown Source) at org.apache.ojb.odmg.oql.OQLQueryImpl.create(Unknown Source) at org.apache.ojb.odmg.oql.OQLQueryImpl.create(Unknown Source) Am I right in assuming, that OJB does not support such subqueries? Retrieving the Collection from the subquery and then explicitely generating an not in expression does the job, however the subquery result could be quite large. Best regards Bernd Längerich