Class RangePartitioningPolicy
java.lang.Object
org.eclipse.persistence.descriptors.partitioning.PartitioningPolicy
org.eclipse.persistence.descriptors.partitioning.FieldPartitioningPolicy
org.eclipse.persistence.descriptors.partitioning.RangePartitioningPolicy
- All Implemented Interfaces:
Serializable
PUBLIC:
RangePartitioningPolicy partitions access to a database cluster by a field value from the object,
such as the object's id, location, or tenant.
Each server is assigned a range of values.
All write or read request for object's with that value are sent to the server.
If a query does not include the field as a parameter, then it can either be sent
to all server's and unioned, or left to the sesion's default behavior.
- See Also:
- Author:
- James Sutherland
-
Field Summary
Fields inherited from class org.eclipse.persistence.descriptors.partitioning.FieldPartitioningPolicy
partitionField, unionUnpartitionableQueries
Fields inherited from class org.eclipse.persistence.descriptors.partitioning.PartitioningPolicy
name
-
Constructor Summary
ConstructorDescriptionRangePartitioningPolicy
(String partitionField) RangePartitioningPolicy
(String partitionField, boolean unionUnpartitionableQueries) RangePartitioningPolicy
(String partitionField, RangePartition... partitions) -
Method Summary
Modifier and TypeMethodDescriptionvoid
addPartition
(String connectionPool, Comparable startValue, Comparable endValue) PUBLIC: Add the range partition.void
addPartition
(RangePartition partition) PUBLIC: Add the range partition.void
convertClassNamesToClasses
(ClassLoader classLoader) INTERNAL: Convert all the class-name-based settings to actual class-based settings.List<org.eclipse.persistence.internal.databaseaccess.Accessor>
getConnectionsForQuery
(org.eclipse.persistence.internal.sessions.AbstractSession session, DatabaseQuery query, org.eclipse.persistence.internal.sessions.AbstractRecord arguments) INTERNAL: Get a connection from one of the pools in a round robin rotation fashion.PUBLIC: Return the range partitions.void
partitionPersist
(org.eclipse.persistence.internal.sessions.AbstractSession session, Object object, ClassDescriptor descriptor) INTERNAL: Allow for the persist call to assign the partition.void
setPartitions
(List<RangePartition> partitions) PUBLIC: Set the range partitions.Methods inherited from class org.eclipse.persistence.descriptors.partitioning.FieldPartitioningPolicy
extractPartitionValueForPersist, getPartitionField, getPartitionFieldName, getUnionUnpartitionableQueries, setPartitionField, setPartitionField, setUnionUnpartitionableQueries
Methods inherited from class org.eclipse.persistence.descriptors.partitioning.PartitioningPolicy
acquireAccessor, getAccessor, getName, initialize, setName
-
Field Details
-
partitions
-
-
Constructor Details
-
RangePartitioningPolicy
public RangePartitioningPolicy() -
RangePartitioningPolicy
-
RangePartitioningPolicy
-
RangePartitioningPolicy
-
-
Method Details
-
convertClassNamesToClasses
INTERNAL: Convert all the class-name-based settings to actual class-based settings. This method is used when converting a project that has been built with class names to a project with classes.- Overrides:
convertClassNamesToClasses
in classPartitioningPolicy
-
getPartitions
PUBLIC: Return the range partitions. Each partition represents a range of value to route to a connection pool. Range values should not overlap. -
setPartitions
PUBLIC: Set the range partitions. Each partition represents a range of value to route to a connection pool. Range values should not overlap. -
addPartition
PUBLIC: Add the range partition. -
addPartition
PUBLIC: Add the range partition. -
getConnectionsForQuery
public List<org.eclipse.persistence.internal.databaseaccess.Accessor> getConnectionsForQuery(org.eclipse.persistence.internal.sessions.AbstractSession session, DatabaseQuery query, org.eclipse.persistence.internal.sessions.AbstractRecord arguments) INTERNAL: Get a connection from one of the pools in a round robin rotation fashion.- Specified by:
getConnectionsForQuery
in classPartitioningPolicy
-
partitionPersist
public void partitionPersist(org.eclipse.persistence.internal.sessions.AbstractSession session, Object object, ClassDescriptor descriptor) INTERNAL: Allow for the persist call to assign the partition.- Overrides:
partitionPersist
in classPartitioningPolicy
-