/** * Compile from. */ private void compileUpdateClause() { ListIterator<Expression> updateColumnIter = null; if (query.isUpdateStatement() && query.getUpdateStatement().getUpdateClause().hasUpdateItems()) { if (query.getUpdateStatement().getUpdateClause().getUpdateItems() instanceof CollectionExpression) { updateColumnIter = ((CollectionExpression) query.getUpdateStatement().getUpdateClause() .getUpdateItems()).children().iterator(); while (updateColumnIter.hasNext()) { ListIterator<Expression> childUpdateClauseIter = updateColumnIter.next().children().iterator(); while (childUpdateClauseIter.hasNext()) { addUpdateClause(childUpdateClauseIter); } } } else { updateColumnIter = query.getUpdateStatement().getUpdateClause().getUpdateItems().children() .iterator(); addUpdateClause(updateColumnIter); } } }
private boolean isWhereClause() { if (query.isSelectStatement()) { return query.getSelectStatement().hasWhereClause(); } else if (query.isUpdateStatement()) { return query.getUpdateStatement().hasWhereClause(); } if (query.isDeleteStatement()) { return query.getDeleteStatement().hasWhereClause(); } return false; }
private void buildFrom() { ListIterator<Expression> fromIter = null; if (query.isSelectStatement() && query.getSelectStatement().hasFromClause()) { FromClause fromClause = (FromClause) query.getSelectStatement().getFromClause(); fromIter = fromClause.children().iterator(); } else if (query.isUpdateStatement()) { fromIter = query.getUpdateStatement().getUpdateClause().children().iterator(); } if (query.isDeleteStatement()) { fromIter = query.getDeleteStatement().getDeleteClause().children().iterator(); } if (fromIter != null) { while (fromIter.hasNext()) { String textObj = fromIter.next().toActualText().trim(); if (!StringUtils.isEmpty(textObj)) { query.setFrom(textObj); break; } } } }
/** * Compile where. */ private void compileWhere() { WhereClause whereClause = null; if (query.isSelectStatement()) { whereClause = (WhereClause) query.getSelectStatement().getWhereClause(); } else if (query.isUpdateStatement()) { whereClause = (WhereClause) query.getUpdateStatement().getWhereClause(); } if (query.isDeleteStatement()) { whereClause = (WhereClause) query.getDeleteStatement().getWhereClause(); } String content = whereClause.getConditionalExpression().toActualText(); if (whereClause != null && content.length() == 0) { throw new JPQLParseException("keyword without value[WHERE]"); } query.setFilter(content); }