Package org.eclipse.persistence.queries
Class BatchFetchPolicy
- java.lang.Object
-
- org.eclipse.persistence.queries.BatchFetchPolicy
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
public class BatchFetchPolicy extends java.lang.Object implements java.io.Serializable, java.lang.Cloneable
BatchFetchPolicy defines batch reading configuration.- See Also:
ObjectLevelReadQuery.setBatchFetchPolicy(BatchFetchPolicy)
, Serialized Form- Author:
- James Sutherland
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.List<Expression>
attributeExpressions
Define the attributes to be batch fetched.protected java.util.List<java.lang.String>
attributes
PERF: Cache the local batch read attribute names.protected java.util.List<DatabaseMapping>
batchedMappings
Define the mapping to be batch fetched (from mapping settings).protected java.util.Map<java.lang.Object,java.lang.Object>
batchObjects
Stores temporary map of batched objects (this queries results).protected java.util.Map<java.lang.Object,java.util.List<org.eclipse.persistence.internal.sessions.AbstractRecord>>
dataResults
Stores temporary list of rows from parent batch query per batched mapping.protected java.util.Map<DatabaseMapping,ReadQuery>
mappingQueries
PERF: Used internally to store the prepared mapping queries.protected int
size
Define the batch size for IN style batch fetching.protected BatchFetchType
type
Define the type of batch fetching to use.
-
Constructor Summary
Constructors Constructor Description BatchFetchPolicy()
BatchFetchPolicy(BatchFetchType type)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addDataResults(org.eclipse.persistence.internal.sessions.AbstractRecord row)
INTERNAL: Add the row to the set of data results.BatchFetchPolicy
clone()
java.util.List<org.eclipse.persistence.internal.sessions.AbstractRecord>
getAllDataResults()
INTERNAL: Return temporary list of rows from parent batch query per batched mapping.java.util.List<Expression>
getAttributeExpressions()
INTERNAL: Return all attributes specified for batch reading.java.util.List<java.lang.String>
getAttributes()
INTERNAL: PERF: Return the cached local (only) batch read attribute names.java.util.List<DatabaseMapping>
getBatchedMappings()
INTERNAL: Return any mappings that are always batched.java.util.Map<java.lang.Object,java.lang.Object>
getBatchObjects()
INTERNAL: Return temporary map of batched objects.java.util.Map<java.lang.Object,java.util.List<org.eclipse.persistence.internal.sessions.AbstractRecord>>
getDataResults()
INTERNAL: Return temporary list of rows from parent batch query per batched mapping.java.util.List<org.eclipse.persistence.internal.sessions.AbstractRecord>
getDataResults(DatabaseMapping mapping)
INTERNAL: Return the remaining data results for the mapping.java.util.Map<DatabaseMapping,ReadQuery>
getMappingQueries()
INTERNAL: PERF: Return the internally stored prepared mapping queries.int
getSize()
Return the batch fetch size.BatchFetchType
getType()
Return the batch fetch type, (JOIN, IN, EXISTS).boolean
hasAttributes()
INTERNAL: Return true is this query has batchingboolean
isAttributeBatchRead(java.lang.String attributeName)
INTERNAL: Return if the attribute is specified for batch reading.boolean
isAttributeBatchRead(ClassDescriptor mappingDescriptor, java.lang.String attributeName)
INTERNAL: Return if the attribute is specified for batch reading.boolean
isEXISTS()
Return if using the EXISTS fetch type.boolean
isIN()
Return if using the IN fetch type.boolean
isJOIN()
Return if using the JOIN fetch type.void
setAttributeExpressions(java.util.List<Expression> attributeExpressions)
void
setAttributes(java.util.List<java.lang.String> attributes)
INTERNAL: PERF: Set the cached local (only) batch read attribute names.void
setBatchedMappings(java.util.List<DatabaseMapping> batchedMappings)
INTERNAL: Set any mappings that are always batched.void
setBatchObjects(java.util.Map<java.lang.Object,java.lang.Object> batchObjects)
INTERNAL: Set temporary map of batched objects.void
setDataResults(java.util.List<org.eclipse.persistence.internal.sessions.AbstractRecord> rows)
INTERNAL: Set the rows to the set of data results for each mapping.void
setDataResults(java.util.Map<java.lang.Object,java.util.List<org.eclipse.persistence.internal.sessions.AbstractRecord>> dataResults)
INTERNAL: Set temporary list of rows from parent batch query per batched mapping.void
setDataResults(DatabaseMapping mapping, java.util.List<org.eclipse.persistence.internal.sessions.AbstractRecord> rows)
INTERNAL: Set the remaining data results for the mapping.void
setMappingQueries(java.util.Map<DatabaseMapping,ReadQuery> mappingQueries)
INTERNAL: PERF: Set the internally stored prepared mapping queries.void
setSize(int size)
Set the batch fetch size.void
setType(BatchFetchType type)
Set the batch fetch type, (JOIN, IN, EXISTS).
-
-
-
Field Detail
-
type
protected BatchFetchType type
Define the type of batch fetching to use.
-
size
protected int size
Define the batch size for IN style batch fetching.
-
attributeExpressions
protected java.util.List<Expression> attributeExpressions
Define the attributes to be batch fetched.
-
batchedMappings
protected java.util.List<DatabaseMapping> batchedMappings
Define the mapping to be batch fetched (from mapping settings).
-
mappingQueries
protected transient java.util.Map<DatabaseMapping,ReadQuery> mappingQueries
PERF: Used internally to store the prepared mapping queries.
-
attributes
protected java.util.List<java.lang.String> attributes
PERF: Cache the local batch read attribute names.
-
dataResults
protected transient java.util.Map<java.lang.Object,java.util.List<org.eclipse.persistence.internal.sessions.AbstractRecord>> dataResults
Stores temporary list of rows from parent batch query per batched mapping.
-
batchObjects
protected transient java.util.Map<java.lang.Object,java.lang.Object> batchObjects
Stores temporary map of batched objects (this queries results).
-
-
Constructor Detail
-
BatchFetchPolicy
public BatchFetchPolicy()
-
BatchFetchPolicy
public BatchFetchPolicy(BatchFetchType type)
-
-
Method Detail
-
clone
public BatchFetchPolicy clone()
- Overrides:
clone
in classjava.lang.Object
-
isIN
public boolean isIN()
Return if using the IN fetch type.
-
isJOIN
public boolean isJOIN()
Return if using the JOIN fetch type.
-
isEXISTS
public boolean isEXISTS()
Return if using the EXISTS fetch type.
-
getType
public BatchFetchType getType()
Return the batch fetch type, (JOIN, IN, EXISTS).
-
setType
public void setType(BatchFetchType type)
Set the batch fetch type, (JOIN, IN, EXISTS).
-
getSize
public int getSize()
Return the batch fetch size.
-
setSize
public void setSize(int size)
Set the batch fetch size.
-
getMappingQueries
public java.util.Map<DatabaseMapping,ReadQuery> getMappingQueries()
INTERNAL: PERF: Return the internally stored prepared mapping queries.
-
setMappingQueries
public void setMappingQueries(java.util.Map<DatabaseMapping,ReadQuery> mappingQueries)
INTERNAL: PERF: Set the internally stored prepared mapping queries.
-
getAttributes
public java.util.List<java.lang.String> getAttributes()
INTERNAL: PERF: Return the cached local (only) batch read attribute names.
-
setAttributes
public void setAttributes(java.util.List<java.lang.String> attributes)
INTERNAL: PERF: Set the cached local (only) batch read attribute names.
-
setAttributeExpressions
public void setAttributeExpressions(java.util.List<Expression> attributeExpressions)
-
getAttributeExpressions
public java.util.List<Expression> getAttributeExpressions()
INTERNAL: Return all attributes specified for batch reading.
-
hasAttributes
public boolean hasAttributes()
INTERNAL: Return true is this query has batching
-
getBatchedMappings
public java.util.List<DatabaseMapping> getBatchedMappings()
INTERNAL: Return any mappings that are always batched.
-
setBatchedMappings
public void setBatchedMappings(java.util.List<DatabaseMapping> batchedMappings)
INTERNAL: Set any mappings that are always batched.
-
isAttributeBatchRead
public boolean isAttributeBatchRead(java.lang.String attributeName)
INTERNAL: Return if the attribute is specified for batch reading.
-
isAttributeBatchRead
public boolean isAttributeBatchRead(ClassDescriptor mappingDescriptor, java.lang.String attributeName)
INTERNAL: Return if the attribute is specified for batch reading.
-
addDataResults
public void addDataResults(org.eclipse.persistence.internal.sessions.AbstractRecord row)
INTERNAL: Add the row to the set of data results. This is used for IN batching in batches.
-
getDataResults
public java.util.List<org.eclipse.persistence.internal.sessions.AbstractRecord> getDataResults(DatabaseMapping mapping)
INTERNAL: Return the remaining data results for the mapping. This is used for IN batching in batches.
-
setDataResults
public void setDataResults(DatabaseMapping mapping, java.util.List<org.eclipse.persistence.internal.sessions.AbstractRecord> rows)
INTERNAL: Set the remaining data results for the mapping. This is used for IN batching in batches.
-
setDataResults
public void setDataResults(java.util.List<org.eclipse.persistence.internal.sessions.AbstractRecord> rows)
INTERNAL: Set the rows to the set of data results for each mapping. This is used for IN batching in batches.
-
getAllDataResults
public java.util.List<org.eclipse.persistence.internal.sessions.AbstractRecord> getAllDataResults()
INTERNAL: Return temporary list of rows from parent batch query per batched mapping. This is used for IN batching in batches.
-
getDataResults
public java.util.Map<java.lang.Object,java.util.List<org.eclipse.persistence.internal.sessions.AbstractRecord>> getDataResults()
INTERNAL: Return temporary list of rows from parent batch query per batched mapping. This is used for IN batching in batches.
-
setDataResults
public void setDataResults(java.util.Map<java.lang.Object,java.util.List<org.eclipse.persistence.internal.sessions.AbstractRecord>> dataResults)
INTERNAL: Set temporary list of rows from parent batch query per batched mapping. This is used for IN batching in batches.
-
getBatchObjects
public java.util.Map<java.lang.Object,java.lang.Object> getBatchObjects()
INTERNAL: Return temporary map of batched objects.
-
setBatchObjects
public void setBatchObjects(java.util.Map<java.lang.Object,java.lang.Object> batchObjects)
INTERNAL: Set temporary map of batched objects.
-
-