name conflict: QueryImpl from JDBC vs. QueryImpl from kernel
joins are done by SelectImpl
subselects have some issues especially with non-relationship
src/main/jjtree/org/apache/openjpa/kernel/jpql/JPQL.jjt has rules
all queries always have a "candidate class"
can do in memory filtering by downcasting the JPA Query instance and
passing it a collection to filter
can traverse entity parameters via :param.firstname or
DBDictionary contains fields that can be customized per database type
JPQLExpressionBuilder does semantic analysis by walking the syntax tree and
generating the semantic tree
SQLFactoryImpl constructs the SQL for the query
SQLBuffer is the result of applying DBDictionary rules to the semantic tree
Can append SQLBuffer to another SQLBuffer for e.g. subselects
SQLBuffer is almost a StringBuffer
ResultSetResult will call ResultSet.getInt etc.