Package org.apache.openjpa.jdbc.sql
Class LogicalUnion.UnionSelect
- java.lang.Object
-
- org.apache.openjpa.jdbc.sql.LogicalUnion.UnionSelect
-
- All Implemented Interfaces:
Select,SelectExecutor
- Enclosing class:
- LogicalUnion
public class LogicalUnion.UnionSelect extends Object implements Select
A select that is part of a logical union.
-
-
Field Summary
Fields Modifier and Type Field Description protected ListorderIdxsprotected intordersprotected intposprotected SelectImplsel-
Fields inherited from interface org.apache.openjpa.jdbc.sql.Select
EAGER_INNER, EAGER_OUTER, EAGER_PARALLEL, FROM_SELECT_ALIAS, SUBS_ANY_JOINABLE, SUBS_EXACT, SUBS_JOINABLE, SUBS_NONE, TYPE_JOINLESS, TYPE_TWO_PART
-
-
Constructor Summary
Constructors Constructor Description UnionSelect(SelectImpl sel, int pos)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddJoinClassConditions()Apply class conditions from relation joins.Joinsand(Joins joins1, Joins joins2)AND the given joins together.voidappend(SQLBuffer buf, Joins joins)Append the given joins to the given buffer.voidclearOrdering()Clear odering conditions.voidclearSelects()Clear the existing column selects.Contextctx()Return the JPQL query context of this selectSelectExecutoreagerClone(FieldMapping key, int eagerType, boolean toMany, int sels)Return a select that will be eagerly executed with this one, or null if the select cannot be created for the given key and join type.Resultexecute(JDBCStore store, JDBCFetchConfiguration fetch)Execute this select in the context of the given store manager.Resultexecute(JDBCStore store, JDBCFetchConfiguration fetch, int lockLevel)Execute this select in the context of the given store manager.SelectExecutorfullClone(int sels)Return a SELECT that is a complete clone of this one.booleangetAutoDistinct()Whether to automatically make results distinct when relational joins would otherwise introduce duplicates.StringgetColumnAlias(String col, Table table)Return the alias for the given column.StringgetColumnAlias(String col, Table table, Joins joins)Return the alias for the given column.StringgetColumnAlias(Column col)Return the alias for the given column.StringgetColumnAlias(Column col, Object alias)Return the alias for the given column, without creating new table aliasStringgetColumnAlias(Column col, Joins joins)Return the alias for the given column.JDBCConfigurationgetConfiguration()Return the select configuration.intgetCount(JDBCStore store)Return the number of instances matching this select.SelectImplgetDelegate()Delegate select.DBDictionarygetDictionary()SelectExecutorgetEager(FieldMapping key)Return the eager select for the given key.longgetEndIndex()The result end index.ListgetExcludedJoinedTableClassMeta()get joined table metadatas excluded for polymorphic queriesintgetExpectedResultCount()The expected result count for the query.SelectgetFromSelect()Another select instance that creates a temporary table from which this select pulls data.SQLBuffergetGrouping()Return the grouping SQL for this select.booleangetHasSubselect()Return the flag to indicate whether this Select has internally generated subselectSQLBuffergetHaving()Return the HAVING clause, or null if none.ListgetIdentifierAliases()Get the aliases for identifier columns that can be used in COUNT selects to find the number of matches.ListgetJoinedTableClassMeta()get joined table metadatas for polymorphic queriesIteratorgetJoinIterator()Return the top-levelJoinelements for this select.JoinsgetJoins()Return the top-level joins for this select.intgetJoinSyntax()The join syntax for this select, as one of the syntax constants fromJoinSyntaxes.SQLBuffergetOrdering()Return the ordering SQL for this select.SelectgetParent()Return the parent of this select, if it is a subselect.ListgetSelectAliases()Return the aliases of all selected columns and all selected buffers, in the order they were selected.ListgetSelectedOrderIndexes()Return the indexes of the data in the select clause this query is ordered by.ListgetSelects()Return the actualVals andColumns that were selected, in the order that they were selected.SQLBuffergetSQL()Get the buffer if it has been computed by a previous call toSelectExecutor.toSelect(boolean, JDBCFetchConfiguration), if any.longgetStartIndex()The result start index.StringgetSubselectPath()Return the subselect path for this select, if it is a subselect.ListgetSubselects()Return this select's subselects, or empty collection if none.CollectiongetTableAliases()Return the set of all used table aliases.ClassMappinggetTablePerClassMeta()get table-per-class metadata for polymorphic queriesSQLBuffergetWhere()Return the WHERE clause, minus any necessary end joins.voidgroupBy(String sql)Add a GROUP BY clause.voidgroupBy(String sql, Joins joins)Add a GROUP BY clause.voidgroupBy(ClassMapping mapping, int subclasses, JDBCStore store, JDBCFetchConfiguration fetch)Group by the columns of the given mapping, possibly including subclasses.voidgroupBy(ClassMapping mapping, int subclasses, JDBCStore store, JDBCFetchConfiguration fetch, Joins joins)Group by the columns of the given mapping, possibly including subclasses.voidgroupBy(Column col)Group by the given column.voidgroupBy(Column[] cols)Group by the given columns.voidgroupBy(Column[] cols, Joins joins)Group by the given columns.voidgroupBy(Column col, Joins joins)Group by the given column.voidgroupBy(SQLBuffer sql)Add a GROUP BY clause.voidgroupBy(SQLBuffer sql, Joins joins)Add a GROUP BY clause.booleanhasEagerJoin(boolean toMany)Whether this select has an eager join of the specified type.booleanhasJoin(boolean toMany)Whether this select has a join of the specified type.booleanhasMultipleSelects()Affirm if this receiver requires more than one selects to fetch its data.voidhaving(String sql)Add the given having conditions.voidhaving(String sql, Joins joins)Add the given having conditions.voidhaving(SQLBuffer sql)Add the given having conditions.voidhaving(SQLBuffer sql, Joins joins)Add the given having conditions.intindexOf()The index of this select within the UNION, or 0.booleanisAggregate()Return true if this is an aggregate select.booleanisDistinct()Whether this is a SELECT DISTINCT / UNION ALL.booleanisLob()Return true if this select includes a LOB.booleanisLRS()Whether the result of this select should be treated as a large result set.booleanisSelected(Table table)Return whether the given table is being used in this select.voidlogEagerRelations()Extended trace that logs eager relationsJoinsnewJoins()Return a new instance to use for joining.JoinsnewOuterJoins()Return a new instance to use for outer joining.Joinsor(Joins joins1, Joins joins2)OR the given joins together.booleanorderBy(String sql, boolean asc, boolean select)Add an ORDER BY clause.booleanorderBy(String sql, boolean asc, Joins joins, boolean select)Add an ORDER BY clause.intorderBy(Column[] cols, boolean asc, boolean select)Order by the given columns.intorderBy(Column[] cols, boolean asc, Joins joins, boolean select)Order by the given columns.booleanorderBy(Column col, boolean asc, boolean select)Order by the given column.booleanorderBy(Column col, boolean asc, Joins joins, boolean select)Order by the given column.booleanorderBy(SQLBuffer sql, boolean asc, boolean select, Value selAs)Add an ORDER BY clause.booleanorderBy(SQLBuffer sql, boolean asc, Joins joins, boolean select, Value selAs)Add an ORDER BY clause.intorderByPrimaryKey(ClassMapping mapping, boolean asc, boolean select)Order on the primary key columns of the given mapping, joining to superclasses as necessary to get all columns needed to construct an object id.intorderByPrimaryKey(ClassMapping mapping, boolean asc, Joins joins, boolean select)Select and order on the primary key columns of the given mapping, joining to superclasses as necessary to get all columns needed to construct an object id.Joinsouter(Joins joins)Return a join set making the given joins outer joins.protected voidrecordOrder(Object ord, boolean asc)Record that we're ordering by a SQL expression.protected voidrecordOrderColumns(Column[] cols, boolean asc)Record that we're ordering by the given columns.booleanselect(String sql, Object id)Select the given SQL; the given id object is an identifier to use when retrieving the corresponding value from aResult.booleanselect(String sql, Object id, Joins joins)Select the given SQL; the given id object is an identifier to use when retrieving the corresponding value from aResult.voidselect(ClassMapping mapping, int subclasses, JDBCStore store, JDBCFetchConfiguration fetch, int eager)Select the columns of the given mapping, possibly including subclasses.voidselect(ClassMapping mapping, int subclasses, JDBCStore store, JDBCFetchConfiguration fetch, int eager, Joins joins)Select the columns of the given mapping, possibly including subclasses.booleanselect(Column col)Select the given column.intselect(Column[] cols)Select the given columns.intselect(Column[] cols, Joins joins)Select the given columns.booleanselect(Column col, Joins joins)Select the given column.booleanselect(SQLBuffer sql, Object id)Select the given SQL; the given id object is an identifier to use when retrieving the corresponding value from aResult.booleanselect(SQLBuffer sql, Object id, Joins joins)Select the given SQL; the given id object is an identifier to use when retrieving the corresponding value from aResult.voidselectIdentifier(ClassMapping mapping, int subclasses, JDBCStore store, JDBCFetchConfiguration fetch, int eager)Select the columns of the given mapping, possibly including subclasses.voidselectIdentifier(ClassMapping mapping, int subclasses, JDBCStore store, JDBCFetchConfiguration fetch, int eager, Joins joins)Select the columns of the given mapping, possibly including subclasses.booleanselectIdentifier(Column col)Select the given column as one that can be used to get a count of distinct matches.intselectIdentifier(Column[] cols)Select the given columns as ones that can be used to get a count of distinct matches.intselectIdentifier(Column[] cols, Joins joins)Select the given columns as ones that can be used to get a count of distinct matches.booleanselectIdentifier(Column col, Joins joins)Select the given column as one that can be used to get a count of distinct matches.voidselectPlaceholder(String sql)Select the given SQL as a placeholder for a UNION element.intselectPrimaryKey(ClassMapping mapping)Select the primary key columns of the given mapping, joining to superclasses as necessary to get all columns needed to construct an object id.intselectPrimaryKey(ClassMapping mapping, Joins joins)Select the primary key columns of the given mapping, joining to superclasses as necessary to get all columns needed to construct an object id.voidsetAggregate(boolean agg)Set to true for aggregate selects.voidsetAutoDistinct(boolean distinct)Whether to automatically make results distinct when relational joins would otherwise introduce duplicates.voidsetContext(Context context)Set JPQL query context for this selectvoidsetDistinct(boolean distinct)Whether this is a SELECT DISTINCT / UNION ALL.voidsetExcludedJoinedTableClassMeta(List meta)Set joined table metadatas excluded for polymorphic queriesvoidsetExpectedResultCount(int expectedResultCount, boolean force)The expected result count for the query.voidsetFromSelect(Select sel)Another select instance that creates a temporary table from which this select pulls data.voidsetHasSubselect(boolean hasSub)Set the flag to indicate whether this Select has internally generated subselectvoidsetJoinedTableClassMeta(List meta)Set joined table metadatas for polymorphic queriesvoidsetJoinSyntax(int joinSyntax)The join syntax for this select, as one of the syntax constants fromJoinSyntaxes.voidsetLob(boolean lob)Set to true for selects that include LOB columns.voidsetLRS(boolean lrs)Whether the result of this select should be treated as a large result set.voidsetParent(Select parent, String path)Turn this select into a subselect of the given instance.voidsetRange(long start, long end)Set the result range for this select.voidsetSchemaAlias(String schemaAlias)Record the initial schemaAlias of a join pathvoidsetTablePerClassMeta(ClassMapping meta)Set table-per-class metadata for polymorphic queriesbooleansupportsLocking()Whether this select can be executed for update.booleansupportsRandomAccess(boolean forUpdate)Return whether this select can support a random access result set type.SQLBuffertoSelect(boolean forUpdate, JDBCFetchConfiguration fetch)Return this select as a SQL statement formatted for the current dictionary.SQLBuffertoSelectCount()Return this select as a COUNT SQL statement formatted for the current dictionary.StringtoString()Implement toString to generate SQL string for profiling/debuggging.voidwhere(String sql)Add the given where conditions.voidwhere(String sql, Joins joins)Add the given where conditions.voidwhere(Joins joins)Add the given where conditions.voidwhere(SQLBuffer sql)Add the given where conditions.voidwhere(SQLBuffer sql, Joins joins)Add the given where conditions.SelectExecutorwhereClone(int sels)Return a SELECT with the same joins and where conditions as this one.voidwhereForeignKey(ForeignKey fk, Object oid, ClassMapping mapping, JDBCStore store)Add where conditions setting the given foreign key to the given oid values.voidwherePrimaryKey(Object oid, ClassMapping mapping, JDBCStore store)Add where conditions setting the mapping's primary key to the given oid values.
-
-
-
Field Detail
-
sel
protected final SelectImpl sel
-
pos
protected final int pos
-
orders
protected int orders
-
orderIdxs
protected List orderIdxs
-
-
Constructor Detail
-
UnionSelect
public UnionSelect(SelectImpl sel, int pos)
-
-
Method Detail
-
getDelegate
public SelectImpl getDelegate()
Delegate select.
-
getSelectedOrderIndexes
public List getSelectedOrderIndexes()
Return the indexes of the data in the select clause this query is ordered by.
-
getConfiguration
public JDBCConfiguration getConfiguration()
Description copied from interface:SelectExecutorReturn the select configuration.- Specified by:
getConfigurationin interfaceSelectExecutor
-
indexOf
public int indexOf()
Description copied from interface:SelectThe index of this select within the UNION, or 0.
-
toSelect
public SQLBuffer toSelect(boolean forUpdate, JDBCFetchConfiguration fetch)
Description copied from interface:SelectExecutorReturn this select as a SQL statement formatted for the current dictionary.- Specified by:
toSelectin interfaceSelectExecutor
-
getSQL
public SQLBuffer getSQL()
Description copied from interface:SelectExecutorGet the buffer if it has been computed by a previous call toSelectExecutor.toSelect(boolean, JDBCFetchConfiguration), if any.- Specified by:
getSQLin interfaceSelectExecutor
-
toSelectCount
public SQLBuffer toSelectCount()
Description copied from interface:SelectExecutorReturn this select as a COUNT SQL statement formatted for the current dictionary.- Specified by:
toSelectCountin interfaceSelectExecutor
-
getAutoDistinct
public boolean getAutoDistinct()
Description copied from interface:SelectExecutorWhether to automatically make results distinct when relational joins would otherwise introduce duplicates.- Specified by:
getAutoDistinctin interfaceSelectExecutor
-
setAutoDistinct
public void setAutoDistinct(boolean distinct)
Description copied from interface:SelectExecutorWhether to automatically make results distinct when relational joins would otherwise introduce duplicates.- Specified by:
setAutoDistinctin interfaceSelectExecutor
-
isDistinct
public boolean isDistinct()
Description copied from interface:SelectExecutorWhether this is a SELECT DISTINCT / UNION ALL.- Specified by:
isDistinctin interfaceSelectExecutor
-
setDistinct
public void setDistinct(boolean distinct)
Description copied from interface:SelectExecutorWhether this is a SELECT DISTINCT / UNION ALL.- Specified by:
setDistinctin interfaceSelectExecutor
-
isLRS
public boolean isLRS()
Description copied from interface:SelectExecutorWhether the result of this select should be treated as a large result set.- Specified by:
isLRSin interfaceSelectExecutor
-
setLRS
public void setLRS(boolean lrs)
Description copied from interface:SelectExecutorWhether the result of this select should be treated as a large result set.- Specified by:
setLRSin interfaceSelectExecutor
-
getJoinSyntax
public int getJoinSyntax()
Description copied from interface:SelectExecutorThe join syntax for this select, as one of the syntax constants fromJoinSyntaxes.- Specified by:
getJoinSyntaxin interfaceSelectExecutor
-
setJoinSyntax
public void setJoinSyntax(int joinSyntax)
Description copied from interface:SelectExecutorThe join syntax for this select, as one of the syntax constants fromJoinSyntaxes.- Specified by:
setJoinSyntaxin interfaceSelectExecutor
-
supportsRandomAccess
public boolean supportsRandomAccess(boolean forUpdate)
Description copied from interface:SelectExecutorReturn whether this select can support a random access result set type.- Specified by:
supportsRandomAccessin interfaceSelectExecutor
-
supportsLocking
public boolean supportsLocking()
Description copied from interface:SelectExecutorWhether this select can be executed for update.- Specified by:
supportsLockingin interfaceSelectExecutor
-
hasMultipleSelects
public boolean hasMultipleSelects()
Description copied from interface:SelectExecutorAffirm if this receiver requires more than one selects to fetch its data.- Specified by:
hasMultipleSelectsin interfaceSelectExecutor
-
getCount
public int getCount(JDBCStore store) throws SQLException
Description copied from interface:SelectExecutorReturn the number of instances matching this select.- Specified by:
getCountin interfaceSelectExecutor- Throws:
SQLException
-
execute
public Result execute(JDBCStore store, JDBCFetchConfiguration fetch) throws SQLException
Description copied from interface:SelectExecutorExecute this select in the context of the given store manager.- Specified by:
executein interfaceSelectExecutor- Throws:
SQLException
-
execute
public Result execute(JDBCStore store, JDBCFetchConfiguration fetch, int lockLevel) throws SQLException
Description copied from interface:SelectExecutorExecute this select in the context of the given store manager.- Specified by:
executein interfaceSelectExecutor- Throws:
SQLException
-
getSubselects
public List getSubselects()
Description copied from interface:SelectReturn this select's subselects, or empty collection if none.- Specified by:
getSubselectsin interfaceSelect
-
getParent
public Select getParent()
Description copied from interface:SelectReturn the parent of this select, if it is a subselect.
-
getSubselectPath
public String getSubselectPath()
Description copied from interface:SelectReturn the subselect path for this select, if it is a subselect.- Specified by:
getSubselectPathin interfaceSelect
-
setParent
public void setParent(Select parent, String path)
Description copied from interface:SelectTurn this select into a subselect of the given instance.
-
setHasSubselect
public void setHasSubselect(boolean hasSub)
Description copied from interface:SelectSet the flag to indicate whether this Select has internally generated subselect- Specified by:
setHasSubselectin interfaceSelect
-
getHasSubselect
public boolean getHasSubselect()
Description copied from interface:SelectReturn the flag to indicate whether this Select has internally generated subselect- Specified by:
getHasSubselectin interfaceSelect
-
getFromSelect
public Select getFromSelect()
Description copied from interface:SelectAnother select instance that creates a temporary table from which this select pulls data.- Specified by:
getFromSelectin interfaceSelect
-
setFromSelect
public void setFromSelect(Select sel)
Description copied from interface:SelectAnother select instance that creates a temporary table from which this select pulls data.- Specified by:
setFromSelectin interfaceSelect
-
hasEagerJoin
public boolean hasEagerJoin(boolean toMany)
Description copied from interface:SelectWhether this select has an eager join of the specified type.- Specified by:
hasEagerJoinin interfaceSelect
-
hasJoin
public boolean hasJoin(boolean toMany)
Description copied from interface:SelectWhether this select has a join of the specified type.
-
isSelected
public boolean isSelected(Table table)
Description copied from interface:SelectReturn whether the given table is being used in this select.- Specified by:
isSelectedin interfaceSelect
-
getTableAliases
public Collection getTableAliases()
Description copied from interface:SelectReturn the set of all used table aliases.- Specified by:
getTableAliasesin interfaceSelect
-
getSelects
public List getSelects()
Description copied from interface:SelectReturn the actualVals andColumns that were selected, in the order that they were selected.- Specified by:
getSelectsin interfaceSelect
-
getSelectAliases
public List getSelectAliases()
Description copied from interface:SelectReturn the aliases of all selected columns and all selected buffers, in the order they were selected. Each alias may be either a string or aSQLBuffer.- Specified by:
getSelectAliasesin interfaceSelect
-
getIdentifierAliases
public List getIdentifierAliases()
Description copied from interface:SelectGet the aliases for identifier columns that can be used in COUNT selects to find the number of matches. Each alias will be a string. If no identifier columns have been nominated, then all column alises are returned.- Specified by:
getIdentifierAliasesin interfaceSelect
-
getOrdering
public SQLBuffer getOrdering()
Description copied from interface:SelectReturn the ordering SQL for this select.- Specified by:
getOrderingin interfaceSelect
-
getGrouping
public SQLBuffer getGrouping()
Description copied from interface:SelectReturn the grouping SQL for this select.- Specified by:
getGroupingin interfaceSelect
-
getWhere
public SQLBuffer getWhere()
Description copied from interface:SelectReturn the WHERE clause, minus any necessary end joins.
-
getHaving
public SQLBuffer getHaving()
Description copied from interface:SelectReturn the HAVING clause, or null if none.
-
addJoinClassConditions
public void addJoinClassConditions()
Description copied from interface:SelectApply class conditions from relation joins. This may affect the return values ofSelect.getJoins(),Select.getJoinIterator(), andSelect.getWhere().- Specified by:
addJoinClassConditionsin interfaceSelect
-
getJoins
public Joins getJoins()
Description copied from interface:SelectReturn the top-level joins for this select.
-
getJoinIterator
public Iterator getJoinIterator()
Description copied from interface:SelectReturn the top-levelJoinelements for this select.- Specified by:
getJoinIteratorin interfaceSelect
-
getStartIndex
public long getStartIndex()
Description copied from interface:SelectThe result start index.- Specified by:
getStartIndexin interfaceSelect
-
getEndIndex
public long getEndIndex()
Description copied from interface:SelectThe result end index.- Specified by:
getEndIndexin interfaceSelect
-
setRange
public void setRange(long start, long end)Description copied from interface:SelectSet the result range for this select.
-
getColumnAlias
public String getColumnAlias(Column col)
Description copied from interface:SelectReturn the alias for the given column.- Specified by:
getColumnAliasin interfaceSelect
-
getColumnAlias
public String getColumnAlias(Column col, Joins joins)
Description copied from interface:SelectReturn the alias for the given column.- Specified by:
getColumnAliasin interfaceSelect
-
getColumnAlias
public String getColumnAlias(Column col, Object alias)
Description copied from interface:SelectReturn the alias for the given column, without creating new table alias- Specified by:
getColumnAliasin interfaceSelect
-
getColumnAlias
public String getColumnAlias(String col, Table table)
Description copied from interface:SelectReturn the alias for the given column.- Specified by:
getColumnAliasin interfaceSelect
-
getColumnAlias
public String getColumnAlias(String col, Table table, Joins joins)
Description copied from interface:SelectReturn the alias for the given column.- Specified by:
getColumnAliasin interfaceSelect
-
isAggregate
public boolean isAggregate()
Description copied from interface:SelectReturn true if this is an aggregate select.- Specified by:
isAggregatein interfaceSelect
-
setAggregate
public void setAggregate(boolean agg)
Description copied from interface:SelectSet to true for aggregate selects.- Specified by:
setAggregatein interfaceSelect
-
isLob
public boolean isLob()
Description copied from interface:SelectReturn true if this select includes a LOB.
-
setLob
public void setLob(boolean lob)
Description copied from interface:SelectSet to true for selects that include LOB columns.
-
selectPlaceholder
public void selectPlaceholder(String sql)
Description copied from interface:SelectSelect the given SQL as a placeholder for a UNION element.- Specified by:
selectPlaceholderin interfaceSelect
-
clearSelects
public void clearSelects()
Description copied from interface:SelectClear the existing column selects.- Specified by:
clearSelectsin interfaceSelect
-
select
public boolean select(SQLBuffer sql, Object id)
Description copied from interface:SelectSelect the given SQL; the given id object is an identifier to use when retrieving the corresponding value from aResult.
-
select
public boolean select(SQLBuffer sql, Object id, Joins joins)
Description copied from interface:SelectSelect the given SQL; the given id object is an identifier to use when retrieving the corresponding value from aResult.
-
select
public boolean select(String sql, Object id)
Description copied from interface:SelectSelect the given SQL; the given id object is an identifier to use when retrieving the corresponding value from aResult.
-
select
public boolean select(String sql, Object id, Joins joins)
Description copied from interface:SelectSelect the given SQL; the given id object is an identifier to use when retrieving the corresponding value from aResult.
-
select
public boolean select(Column col)
Description copied from interface:SelectSelect the given column.
-
select
public boolean select(Column col, Joins joins)
Description copied from interface:SelectSelect the given column.
-
select
public int select(Column[] cols)
Description copied from interface:SelectSelect the given columns.
-
select
public int select(Column[] cols, Joins joins)
Description copied from interface:SelectSelect the given columns.
-
select
public void select(ClassMapping mapping, int subclasses, JDBCStore store, JDBCFetchConfiguration fetch, int eager)
Description copied from interface:SelectSelect the columns of the given mapping, possibly including subclasses. This method should be called after all where conditions are added in case the given mapping batches other selects.
-
select
public void select(ClassMapping mapping, int subclasses, JDBCStore store, JDBCFetchConfiguration fetch, int eager, Joins joins)
Description copied from interface:SelectSelect the columns of the given mapping, possibly including subclasses. This method should be called after all where conditions are added in case the given mapping batches other selects.
-
selectIdentifier
public boolean selectIdentifier(Column col)
Description copied from interface:SelectSelect the given column as one that can be used to get a count of distinct matches. It is not necessary to designate distinct identifiers when eagerly traversing the entire result of the select or when not using an LRSSize setting ofcount.- Specified by:
selectIdentifierin interfaceSelect- Returns:
- true if selected
-
selectIdentifier
public boolean selectIdentifier(Column col, Joins joins)
Description copied from interface:SelectSelect the given column as one that can be used to get a count of distinct matches. It is not necessary to designate distinct identifiers when eagerly traversing the entire result of the select or when not using an LRSSize setting ofcount.- Specified by:
selectIdentifierin interfaceSelect- Returns:
- true if selected
-
selectIdentifier
public int selectIdentifier(Column[] cols)
Description copied from interface:SelectSelect the given columns as ones that can be used to get a count of distinct matches. It is not necessary to designate distinct identifiers when eagerly traversing the entire result of the select or when not using an LRSSize setting ofcount.- Specified by:
selectIdentifierin interfaceSelect- Returns:
- bit set of indexes of columns that were selected
-
selectIdentifier
public int selectIdentifier(Column[] cols, Joins joins)
Description copied from interface:SelectSelect the given columns as ones that can be used to get a count of distinct matches. It is not necessary to designate distinct identifiers when eagerly traversing the entire result of the select or when not using an LRSSize setting ofcount.- Specified by:
selectIdentifierin interfaceSelect- Returns:
- bit set of indexes of columns that were selected
-
selectIdentifier
public void selectIdentifier(ClassMapping mapping, int subclasses, JDBCStore store, JDBCFetchConfiguration fetch, int eager)
Description copied from interface:SelectSelect the columns of the given mapping, possibly including subclasses. This method should be called after all where conditions are added in case the given mapping batches other selects. The primary key columns of the mapping can be used to get a count of distinct matches. It is not necessary to designate distinct identifiers when eagerly traversing the entire result of the select or when not using an LRSSize setting ofcount.- Specified by:
selectIdentifierin interfaceSelect
-
selectIdentifier
public void selectIdentifier(ClassMapping mapping, int subclasses, JDBCStore store, JDBCFetchConfiguration fetch, int eager, Joins joins)
Description copied from interface:SelectSelect the columns of the given mapping, possibly including subclasses. This method should be called after all where conditions are added in case the given mapping batches other selects. The primary key columns of the mapping can be used to get a count of distinct matches. It is not necessary to designate distinct identifiers when eagerly traversing the entire result of the select or when not using an LRSSize setting ofcount.- Specified by:
selectIdentifierin interfaceSelect
-
selectPrimaryKey
public int selectPrimaryKey(ClassMapping mapping)
Description copied from interface:SelectSelect the primary key columns of the given mapping, joining to superclasses as necessary to get all columns needed to construct an object id.- Specified by:
selectPrimaryKeyin interfaceSelect- Returns:
- bit set of indexes of pk columns that were selected
-
selectPrimaryKey
public int selectPrimaryKey(ClassMapping mapping, Joins joins)
Description copied from interface:SelectSelect the primary key columns of the given mapping, joining to superclasses as necessary to get all columns needed to construct an object id.- Specified by:
selectPrimaryKeyin interfaceSelect- Returns:
- bit set of indexes of pk columns that were selected
-
orderByPrimaryKey
public int orderByPrimaryKey(ClassMapping mapping, boolean asc, boolean select)
Description copied from interface:SelectOrder on the primary key columns of the given mapping, joining to superclasses as necessary to get all columns needed to construct an object id. Optionally selects ordering data if not already selected.- Specified by:
orderByPrimaryKeyin interfaceSelect
-
orderByPrimaryKey
public int orderByPrimaryKey(ClassMapping mapping, boolean asc, Joins joins, boolean select)
Description copied from interface:SelectSelect and order on the primary key columns of the given mapping, joining to superclasses as necessary to get all columns needed to construct an object id. Optionally selects ordering data if not already selected.- Specified by:
orderByPrimaryKeyin interfaceSelect
-
recordOrder
protected void recordOrder(Object ord, boolean asc)
Record that we're ordering by a SQL expression.
-
recordOrderColumns
protected void recordOrderColumns(Column[] cols, boolean asc)
Record that we're ordering by the given columns.
-
orderBy
public boolean orderBy(Column col, boolean asc, boolean select)
Description copied from interface:SelectOrder by the given column. Optionally selects ordering data if not already selected.
-
orderBy
public boolean orderBy(Column col, boolean asc, Joins joins, boolean select)
Description copied from interface:SelectOrder by the given column. Optionally selects ordering data if not already selected.
-
orderBy
public int orderBy(Column[] cols, boolean asc, boolean select)
Description copied from interface:SelectOrder by the given columns. Optionally selects ordering data if not already selected.
-
orderBy
public int orderBy(Column[] cols, boolean asc, Joins joins, boolean select)
Description copied from interface:SelectOrder by the given columns. Optionally selects ordering data if not already selected.
-
orderBy
public boolean orderBy(SQLBuffer sql, boolean asc, boolean select, Value selAs)
Description copied from interface:SelectAdd an ORDER BY clause. Optionally selects ordering data if not already selected.
-
orderBy
public boolean orderBy(SQLBuffer sql, boolean asc, Joins joins, boolean select, Value selAs)
Description copied from interface:SelectAdd an ORDER BY clause. Optionally selects ordering data if not already selected.
-
orderBy
public boolean orderBy(String sql, boolean asc, boolean select)
Description copied from interface:SelectAdd an ORDER BY clause. Optionally selects ordering data if not already selected.
-
orderBy
public boolean orderBy(String sql, boolean asc, Joins joins, boolean select)
Description copied from interface:SelectAdd an ORDER BY clause. Optionally selects ordering data if not already selected.
-
clearOrdering
public void clearOrdering()
Description copied from interface:SelectClear odering conditions.- Specified by:
clearOrderingin interfaceSelect
-
wherePrimaryKey
public void wherePrimaryKey(Object oid, ClassMapping mapping, JDBCStore store)
Description copied from interface:SelectAdd where conditions setting the mapping's primary key to the given oid values. If the given mapping does not use oid values for its primary key, we will recursively join to its superclass until we find an ancestor that does.- Specified by:
wherePrimaryKeyin interfaceSelect
-
whereForeignKey
public void whereForeignKey(ForeignKey fk, Object oid, ClassMapping mapping, JDBCStore store)
Description copied from interface:SelectAdd where conditions setting the given foreign key to the given oid values.- Specified by:
whereForeignKeyin interfaceSelect- See Also:
Select.wherePrimaryKey(java.lang.Object, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.kernel.JDBCStore)
-
where
public void where(Joins joins)
Description copied from interface:SelectAdd the given where conditions.
-
where
public void where(SQLBuffer sql)
Description copied from interface:SelectAdd the given where conditions.
-
where
public void where(SQLBuffer sql, Joins joins)
Description copied from interface:SelectAdd the given where conditions.
-
where
public void where(String sql)
Description copied from interface:SelectAdd the given where conditions.
-
where
public void where(String sql, Joins joins)
Description copied from interface:SelectAdd the given where conditions.
-
having
public void having(SQLBuffer sql)
Description copied from interface:SelectAdd the given having conditions.
-
having
public void having(SQLBuffer sql, Joins joins)
Description copied from interface:SelectAdd the given having conditions.
-
having
public void having(String sql)
Description copied from interface:SelectAdd the given having conditions.
-
having
public void having(String sql, Joins joins)
Description copied from interface:SelectAdd the given having conditions.
-
groupBy
public void groupBy(SQLBuffer sql)
Description copied from interface:SelectAdd a GROUP BY clause.
-
groupBy
public void groupBy(SQLBuffer sql, Joins joins)
Description copied from interface:SelectAdd a GROUP BY clause.
-
groupBy
public void groupBy(String sql)
Description copied from interface:SelectAdd a GROUP BY clause.
-
groupBy
public void groupBy(String sql, Joins joins)
Description copied from interface:SelectAdd a GROUP BY clause.
-
groupBy
public void groupBy(Column col)
Description copied from interface:SelectGroup by the given column.
-
groupBy
public void groupBy(Column col, Joins joins)
Description copied from interface:SelectGroup by the given column.
-
groupBy
public void groupBy(Column[] cols)
Description copied from interface:SelectGroup by the given columns.
-
groupBy
public void groupBy(Column[] cols, Joins joins)
Description copied from interface:SelectGroup by the given columns.
-
groupBy
public void groupBy(ClassMapping mapping, int subclasses, JDBCStore store, JDBCFetchConfiguration fetch)
Description copied from interface:SelectGroup by the columns of the given mapping, possibly including subclasses. Assumes EAGER_NONE.
-
groupBy
public void groupBy(ClassMapping mapping, int subclasses, JDBCStore store, JDBCFetchConfiguration fetch, Joins joins)
Description copied from interface:SelectGroup by the columns of the given mapping, possibly including subclasses. Assumes EAGER_NONE.
-
whereClone
public SelectExecutor whereClone(int sels)
Description copied from interface:SelectReturn a SELECT with the same joins and where conditions as this one.- Specified by:
whereClonein interfaceSelect- Parameters:
sels- number of selects to UNION together; ignored if <= 1
-
fullClone
public SelectExecutor fullClone(int sels)
Description copied from interface:SelectReturn a SELECT that is a complete clone of this one.
-
eagerClone
public SelectExecutor eagerClone(FieldMapping key, int eagerType, boolean toMany, int sels)
Description copied from interface:SelectReturn a select that will be eagerly executed with this one, or null if the select cannot be created for the given key and join type. If the join type is inner or outer, then this select instance will be returned. Otherwise, the returned select will have a clone of this select's where conditions and joins but will be independent.- Specified by:
eagerClonein interfaceSelect- Parameters:
key- the key for the eager selecteagerType- one of the EAGER_* constantstoMany- whether the eager join is to-manysels- number of selects to UNION together; ignored if <= 1
-
getEager
public SelectExecutor getEager(FieldMapping key)
Description copied from interface:SelectReturn the eager select for the given key.
-
newJoins
public Joins newJoins()
Description copied from interface:SelectReturn a new instance to use for joining.
-
newOuterJoins
public Joins newOuterJoins()
Description copied from interface:SelectReturn a new instance to use for outer joining.- Specified by:
newOuterJoinsin interfaceSelect
-
append
public void append(SQLBuffer buf, Joins joins)
Description copied from interface:SelectAppend the given joins to the given buffer.
-
and
public Joins and(Joins joins1, Joins joins2)
Description copied from interface:SelectAND the given joins together. The given joins will be hollowed in the process.
-
or
public Joins or(Joins joins1, Joins joins2)
Description copied from interface:SelectOR the given joins together. The common joins will be removed in the process.
-
outer
public Joins outer(Joins joins)
Description copied from interface:SelectReturn a join set making the given joins outer joins.
-
toString
public String toString()
Description copied from interface:SelectImplement toString to generate SQL string for profiling/debuggging.
-
getExpectedResultCount
public int getExpectedResultCount()
Description copied from interface:SelectExecutorThe expected result count for the query.- Specified by:
getExpectedResultCountin interfaceSelectExecutor
-
setExpectedResultCount
public void setExpectedResultCount(int expectedResultCount, boolean force)Description copied from interface:SelectExecutorThe expected result count for the query.- Specified by:
setExpectedResultCountin interfaceSelectExecutorforce- if false, the count will be discarded if this select has any to-many eager joins that would throw off the result count
-
setContext
public void setContext(Context context)
Description copied from interface:SelectSet JPQL query context for this select- Specified by:
setContextin interfaceSelect
-
ctx
public Context ctx()
Description copied from interface:SelectReturn the JPQL query context of this select
-
setSchemaAlias
public void setSchemaAlias(String schemaAlias)
Description copied from interface:SelectRecord the initial schemaAlias of a join path- Specified by:
setSchemaAliasin interfaceSelect
-
logEagerRelations
public void logEagerRelations()
Description copied from interface:SelectExtended trace that logs eager relations- Specified by:
logEagerRelationsin interfaceSelect
-
setTablePerClassMeta
public void setTablePerClassMeta(ClassMapping meta)
Description copied from interface:SelectSet table-per-class metadata for polymorphic queries- Specified by:
setTablePerClassMetain interfaceSelect
-
getTablePerClassMeta
public ClassMapping getTablePerClassMeta()
Description copied from interface:Selectget table-per-class metadata for polymorphic queries- Specified by:
getTablePerClassMetain interfaceSelect
-
setJoinedTableClassMeta
public void setJoinedTableClassMeta(List meta)
Description copied from interface:SelectSet joined table metadatas for polymorphic queries- Specified by:
setJoinedTableClassMetain interfaceSelect
-
getJoinedTableClassMeta
public List getJoinedTableClassMeta()
Description copied from interface:Selectget joined table metadatas for polymorphic queries- Specified by:
getJoinedTableClassMetain interfaceSelect
-
setExcludedJoinedTableClassMeta
public void setExcludedJoinedTableClassMeta(List meta)
Description copied from interface:SelectSet joined table metadatas excluded for polymorphic queries- Specified by:
setExcludedJoinedTableClassMetain interfaceSelect
-
getExcludedJoinedTableClassMeta
public List getExcludedJoinedTableClassMeta()
Description copied from interface:Selectget joined table metadatas excluded for polymorphic queries- Specified by:
getExcludedJoinedTableClassMetain interfaceSelect
-
getDictionary
public DBDictionary getDictionary()
- Specified by:
getDictionaryin interfaceSelect
-
-