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.

Since:
EclipseLink 2.2
Author:
James Sutherland
See Also:
Serialized Form

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.
 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 setPartitions(java.util.List<RangePartition> partitions)
          PUBLIC: Set the range partitions.
 
Methods inherited from class org.eclipse.persistence.descriptors.partitioning.FieldPartitioningPolicy
getPartitionField, getPartitionFieldName, getUnionUnpartitionableQueries, setPartitionField, setPartitionField, setUnionUnpartitionableQueries
 
Methods inherited from class org.eclipse.persistence.descriptors.partitioning.PartitioningPolicy
acquireAccessor, convertClassNamesToClasses, getAccessor, getName, initialize, setName
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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

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


EclipseLink 2.2.1, "build v20110722-r9776" API Reference