final QueryNode select = (QueryNode) queryTranslator.getSqlAST(); final Lockable drivingPersister = (Lockable) select.getFromClause() .findFromElementByUserOrSqlAlias( userAlias, drivingSqlAlias )
/** * Creates an array of statements that generates code for the array of named parameters in the query. */ private Statement[] generateQueryParamArray() { if (logger.isDebugEnabled()) { logger.debug("Named parameters: " + query.getParameterTranslations().getNamedParameterInformationMap().keySet()); } @SuppressWarnings("unchecked") List<ParameterSpecification> parameterSpecifications = query.getSqlAST().getWalker().getParameterSpecs(); Statement generatedParamList[] = new Statement[parameterSpecifications.size()]; for (int i = 0; i < parameterSpecifications.size(); i++) { NamedParameterSpecification ps = (NamedParameterSpecification) parameterSpecifications.get(i); // invoking ErraiParameter(String name, Integer position, Class<T> type) Class<?> paramType; if (ps.getExpectedType() != null) { paramType = ps.getExpectedType().getReturnedClass(); } else { paramType = Object.class; } generatedParamList[i] = Stmt.newObject(ErraiParameter.class).withParameters( ps.getName(), Integer.valueOf(i), paramType); } return generatedParamList; }
final QueryNode select = ( QueryNode ) queryTranslator.getSqlAST(); final Lockable drivingPersister = ( Lockable ) select.getFromClause() .findFromElementByUserOrSqlAlias( userAlias, drivingSqlAlias )
final QueryNode select = ( QueryNode ) queryTranslator.getSqlAST(); final Lockable drivingPersister = ( Lockable ) select.getFromClause() .findFromElementByUserOrSqlAlias( userAlias, drivingSqlAlias )
org.hibernate.hql.internal.ast.tree.Statement sqlAST = query.getSqlAST();
/** * Adds the public override method {@code matches(JSONObject candidate)} to * the given class builder. The matching logic is, of course, generated based * on the JPA query this generator was created with. * * @param classBuilder * The class builder to append the generated matcher method to. */ private void appendMatchesMethod(AnonymousClassStructureBuilder classBuilder) { AstInorderTraversal traverser = new AstInorderTraversal(query.getSqlAST().getWalker().getAST()); AST whereClause = traverser.fastForwardTo(HqlSqlTokenTypes.WHERE); BlockBuilder<?> matchesMethod = classBuilder .publicOverridesMethod("matches", Parameter.of(JSONObject.class, "candidate")); Statement matchesStmt; if (whereClause != null) { matchesStmt = generateExpression(traverser, new JsonDotNodeResolver(), matchesMethod); } else { matchesStmt = Stmt.loadLiteral(true); } matchesMethod.append(Stmt.nestedCall(matchesStmt).returnValue()); matchesMethod.finish(); }
AstInorderTraversal traverser = new AstInorderTraversal(query.getSqlAST().getWalker().getAST()); final AST orderByParentNode = traverser.fastForwardTo(HqlSqlTokenTypes.ORDER);