/** * Compile select. */ private void compileSelectOrDelete() { if (!query.isSelectStatement()) { if (query.isDeleteStatement()) { query.setIsDeleteUpdate(true); } } else { // initiateExpressionFactory("SELECT"); } compileFrom(); compileResult(); compilewhereClause(); }
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; }
/** * Sets the kundera query type object. */ private void setKunderaQueryTypeObject() { try { if (isSelectStatement()) { this.setSelectStatement((SelectStatement) (this.getJpqlExpression().getQueryStatement())); } else if (isUpdateStatement()) { this.setUpdateStatement((UpdateStatement) (this.getJpqlExpression().getQueryStatement())); } else if (isDeleteStatement()) { this.setDeleteStatement((DeleteStatement) (this.getJpqlExpression().getQueryStatement())); } } catch (ClassCastException cce) { throw new JPQLParseException("Bad query format : " + cce.getMessage()); } }
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); }