EclipseLink 2.4.2, build 'v20130514-5956486' API Reference

org.eclipse.persistence.descriptors.partitioning
Class RangePartitioningPolicy

java.lang.Object
  extended by org.eclipse.persistence.descriptors.partitioning.PartitioningPolicy
      extended by org.eclipse.persistence.descriptors.partitioning.FieldPartitioningPolicy
          extended by 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
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
RangePartitioningPolicy()
           
RangePartitioningPolicy(java.lang.String partitionField)
           
RangePartitioningPolicy(java.lang.String partitionField, boolean unionUnpartitionableQueries)
           
RangePartitioningPolicy(java.lang.String partitionField, RangePartition... partitions)
           
 
Method Summary
 void addPartition(RangePartition partition)
          PUBLIC: Add the range partition.
 void addPartition(java.lang.String connectionPool, java.lang.Comparable startValue, java.lang.Comparable endValue)
          PUBLIC: Add the range partition.
 void convertClassNamesToClasses(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.
 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.
 void setPartitions(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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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:
convertClassNamesToClasses in class PartitioningPolicy

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:
getConnectionsForQuery in class PartitioningPolicy

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:
partitionPersist in class PartitioningPolicy

EclipseLink 2.4.2, build 'v20130514-5956486' API Reference