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:
java.io.Serializable
public class RangePartitioningPolicy extends FieldPartitioningPolicy
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:
- Serialized Form
- Author:
- James Sutherland
- Since:
- EclipseLink 2.2
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.List<RangePartition>partitions-
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
Constructors Constructor Description RangePartitioningPolicy()RangePartitioningPolicy(java.lang.String partitionField)RangePartitioningPolicy(java.lang.String partitionField, boolean unionUnpartitionableQueries)RangePartitioningPolicy(java.lang.String partitionField, RangePartition... partitions)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddPartition(java.lang.String connectionPool, java.lang.Comparable startValue, java.lang.Comparable endValue)PUBLIC: Add the range partition.voidaddPartition(RangePartition partition)PUBLIC: Add the range partition.voidconvertClassNamesToClasses(java.lang.ClassLoader classLoader)INTERNAL: Convert all the class-name-based settings to actual class-based settings.java.util.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.java.util.List<RangePartition>getPartitions()PUBLIC: Return the range partitions.voidpartitionPersist(org.eclipse.persistence.internal.sessions.AbstractSession session, java.lang.Object object, ClassDescriptor descriptor)INTERNAL: Allow for the persist call to assign the partition.voidsetPartitions(java.util.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 Detail
-
partitions
protected java.util.List<RangePartition> partitions
-
-
Constructor Detail
-
RangePartitioningPolicy
public RangePartitioningPolicy()
-
RangePartitioningPolicy
public RangePartitioningPolicy(java.lang.String partitionField)
-
RangePartitioningPolicy
public RangePartitioningPolicy(java.lang.String partitionField, boolean unionUnpartitionableQueries)
-
RangePartitioningPolicy
public RangePartitioningPolicy(java.lang.String partitionField, RangePartition... partitions)
-
-
Method Detail
-
convertClassNamesToClasses
public void convertClassNamesToClasses(java.lang.ClassLoader classLoader)
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:
convertClassNamesToClassesin classPartitioningPolicy
-
getPartitions
public java.util.List<RangePartition> 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 void setPartitions(java.util.List<RangePartition> partitions)
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 void addPartition(java.lang.String connectionPool, java.lang.Comparable startValue, java.lang.Comparable endValue)PUBLIC: Add the range partition.
-
addPartition
public void addPartition(RangePartition partition)
PUBLIC: Add the range partition.
-
getConnectionsForQuery
public java.util.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:
getConnectionsForQueryin classPartitioningPolicy
-
partitionPersist
public void partitionPersist(org.eclipse.persistence.internal.sessions.AbstractSession session, java.lang.Object object, ClassDescriptor descriptor)INTERNAL: Allow for the persist call to assign the partition.- Overrides:
partitionPersistin classPartitioningPolicy
-
-