Class AbstractSelectStatementGenerator
java.lang.Object
org.datanucleus.store.rdbms.sql.AbstractSelectStatementGenerator
- All Implemented Interfaces:
SelectStatementGenerator
- Direct Known Subclasses:
DiscriminatorStatementGenerator, UnionStatementGenerator
public abstract class AbstractSelectStatementGenerator
extends Object
implements SelectStatementGenerator
Abstract generator of SQLStatements.
Based around a candidate(s) and optionally including subclasses.
If the candidate type has no table of its own (using "subclass-table") and there isn't a single
subclass with its own table then throws a NucleusException since there is no root table to select.
Accepts options controlling the generation of the SQL.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected DatastoreClassTable where the candidate objects are stored.protected DatastoreIdentifierAlias for the candidate table in the SQL statement.protected StringName of the table-group to use for the candidate(s) (optional, see SQLStatement).protected ClassCandidate type to query.protected final org.datanucleus.ClassLoaderResolverClassLoader resolver.protected final booleanWhether to include iteration through subclasses of the candidate.(package private) JavaTypeMappingMapping in join table to join to the element.(package private) TableJoin table for the case where we are selecting the join table and returning elements.(package private) DatastoreIdentifierIdentifier for any join table (optional).Selected options controlling the generation of the SQL statement.protected SQLStatementParent statement.protected final RDBMSStoreManagerManager for the datastore.Fields inherited from interface SelectStatementGenerator
OPTION_ALLOW_NULLS, OPTION_DONT_RESTRICT_DISCRIM, OPTION_INCLUDE_SOFT_DELETES, OPTION_RESTRICT_DISCRIM, OPTION_SELECT_DN_TYPE -
Constructor Summary
ConstructorsConstructorDescriptionAbstractSelectStatementGenerator(RDBMSStoreManager storeMgr, org.datanucleus.ClassLoaderResolver clr, Class candidateType, boolean subclasses, DatastoreIdentifier candidateTableAlias, String candidateTableGroupName) Constructor for the case where we select the candidate table.AbstractSelectStatementGenerator(RDBMSStoreManager storeMgr, org.datanucleus.ClassLoaderResolver clr, Class candidateType, boolean subclasses, DatastoreIdentifier candidateTableAlias, String candidateTableGroupName, Table joinTable, DatastoreIdentifier joinTableAlias, JavaTypeMapping joinElementMapping) Constructor for the case where we select the join table and join to the candidate table. -
Method Summary
Modifier and TypeMethodDescriptionbooleanWhether the generator has a particular option set.Method to set a property.unsetOption(String name) Method to unset a property.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface SelectStatementGenerator
getStatement, setParentStatement
-
Field Details
-
storeMgr
Manager for the datastore. -
clr
protected final org.datanucleus.ClassLoaderResolver clrClassLoader resolver. -
parentStmt
Parent statement. -
candidateType
Candidate type to query. -
includeSubclasses
protected final boolean includeSubclassesWhether to include iteration through subclasses of the candidate. -
candidateTable
Table where the candidate objects are stored. -
candidateTableAlias
Alias for the candidate table in the SQL statement. -
candidateTableGroupName
Name of the table-group to use for the candidate(s) (optional, see SQLStatement). -
joinTable
Table joinTableJoin table for the case where we are selecting the join table and returning elements. -
joinTableAlias
DatastoreIdentifier joinTableAliasIdentifier for any join table (optional). -
joinElementMapping
JavaTypeMapping joinElementMappingMapping in join table to join to the element. -
options
-
-
Constructor Details
-
AbstractSelectStatementGenerator
public AbstractSelectStatementGenerator(RDBMSStoreManager storeMgr, org.datanucleus.ClassLoaderResolver clr, Class candidateType, boolean subclasses, DatastoreIdentifier candidateTableAlias, String candidateTableGroupName) Constructor for the case where we select the candidate table.- Parameters:
storeMgr- Store Managerclr- ClassLoader resolvercandidateType- Candidate root typesubclasses- Whether to include subclassescandidateTableAlias- Alias for the candidate (optional)candidateTableGroupName- Name of the table group for the candidate(s) (optional)
-
AbstractSelectStatementGenerator
public AbstractSelectStatementGenerator(RDBMSStoreManager storeMgr, org.datanucleus.ClassLoaderResolver clr, Class candidateType, boolean subclasses, DatastoreIdentifier candidateTableAlias, String candidateTableGroupName, Table joinTable, DatastoreIdentifier joinTableAlias, JavaTypeMapping joinElementMapping) Constructor for the case where we select the join table and join to the candidate table.- Parameters:
storeMgr- Store Managerclr- ClassLoader resolvercandidateType- Candidate root typesubclasses- Whether to include subclassescandidateTableAlias- Alias for the candidate (optional)candidateTableGroupName- Name of the table group for the candidate(s) (optional)joinTable- Join tablejoinTableAlias- Alias for the join tablejoinElementMapping- Mapping to the candidate from the join table
-
-
Method Details
-
setOption
Description copied from interface:SelectStatementGeneratorMethod to set a property.- Specified by:
setOptionin interfaceSelectStatementGenerator- Parameters:
name- Name of the property- Returns:
- This generator
-
unsetOption
Description copied from interface:SelectStatementGeneratorMethod to unset a property.- Specified by:
unsetOptionin interfaceSelectStatementGenerator- Parameters:
name- Name of the property- Returns:
- This generator
-
hasOption
Description copied from interface:SelectStatementGeneratorWhether the generator has a particular option set.- Specified by:
hasOptionin interfaceSelectStatementGenerator- Parameters:
name- Name of the option- Returns:
- Whether it is set
-