org.eclipse.persistence.descriptors.partitioning
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
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 java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
partitions
protected java.util.List<RangePartition> partitions
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)
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