org.eclipse.persistence.descriptors.partitioning
Class ValuePartitioningPolicy

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.ValuePartitioningPolicy
All Implemented Interfaces:
java.io.Serializable

public class ValuePartitioningPolicy
extends FieldPartitioningPolicy

PUBLIC: ValuePartitioningPolicy partitions access to a database cluster by a field value from the object, such as the object's location, or tenant. Each value is assigned a specific server. 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
ValuePartitioningPolicy()
           
ValuePartitioningPolicy(java.lang.String partitionField)
           
ValuePartitioningPolicy(java.lang.String partitionField, boolean unionUnpartitionableQueries)
           
 
Method Summary
 void addPartition(java.lang.Object value, java.lang.String connectionPool)
          PUBLIC: Add the value 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.lang.String getDefaultConnectionPool()
          PUBLIC: Return the default connection pool used for any unmapped values.
 java.util.Map<java.lang.Object,java.lang.String> getPartitions()
          PUBLIC: Return the value partitions.
 void setDefaultConnectionPool(java.lang.String defaultConnectionPool)
          PUBLIC: Set the default connection pool used for any unmapped values.
 void setPartitions(java.util.Map<java.lang.Object,java.lang.String> partitions)
          PUBLIC: Set the value 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

ValuePartitioningPolicy

public ValuePartitioningPolicy()

ValuePartitioningPolicy

public ValuePartitioningPolicy(java.lang.String partitionField)

ValuePartitioningPolicy

public ValuePartitioningPolicy(java.lang.String partitionField,
                               boolean unionUnpartitionableQueries)
Method Detail

getDefaultConnectionPool

public java.lang.String getDefaultConnectionPool()
PUBLIC: Return the default connection pool used for any unmapped values.


setDefaultConnectionPool

public void setDefaultConnectionPool(java.lang.String defaultConnectionPool)
PUBLIC: Set the default connection pool used for any unmapped values.


getPartitions

public java.util.Map<java.lang.Object,java.lang.String> getPartitions()
PUBLIC: Return the value partitions. Each partition maps a value to a connectionPool.


setPartitions

public void setPartitions(java.util.Map<java.lang.Object,java.lang.String> partitions)
PUBLIC: Set the value partitions. Each partition maps a value to a connectionPool.


addPartition

public void addPartition(java.lang.Object value,
                         java.lang.String connectionPool)
PUBLIC: Add the value 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