Class ValuePartitioningPolicy
java.lang.Object
org.eclipse.persistence.descriptors.partitioning.PartitioningPolicy
org.eclipse.persistence.descriptors.partitioning.FieldPartitioningPolicy
org.eclipse.persistence.descriptors.partitioning.ValuePartitioningPolicy
- All Implemented Interfaces:
Serializable
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.
- See Also:
- Author:
- James Sutherland
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected StringThe default connection pool is used for any unmapped values.Use to track order for compute UCP index.Store the value partitions by name.Store the value partitions.protected ClassThe type of the partition values.protected StringThe type name of the partition value names.Fields inherited from class org.eclipse.persistence.descriptors.partitioning.FieldPartitioningPolicy
partitionField, unionUnpartitionableQueriesFields inherited from class org.eclipse.persistence.descriptors.partitioning.PartitioningPolicy
name -
Constructor Summary
ConstructorsConstructorDescriptionValuePartitioningPolicy(String partitionField) ValuePartitioningPolicy(String partitionField, boolean unionUnpartitionableQueries) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddPartition(Object value, String connectionPool) PUBLIC: Add the value partition.voidaddPartitionName(String valueName, String connectionPool) INTERNAL: Add partition values by name (will be initialized at runtime with the real class loader).voidconvertClassNamesToClasses(ClassLoader classLoader) INTERNAL: Convert all the class-name-based settings to actual class-based settings.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.PUBLIC: Return the default connection pool used for any unmapped values.PUBLIC: Return the value partitions.voidpartitionPersist(org.eclipse.persistence.internal.sessions.AbstractSession session, Object object, ClassDescriptor descriptor) INTERNAL: Allow for the persist call to assign the partition.voidsetDefaultConnectionPool(String defaultConnectionPool) PUBLIC: Set the default connection pool used for any unmapped values.voidsetOrderedPartitions(List<String> orderedPartitions) voidsetPartitions(Map<Object, String> partitions) PUBLIC: Set the value partitions.voidsetPartitionValueTypeName(String partitionValueTypeName) INTERNAL:Methods inherited from class org.eclipse.persistence.descriptors.partitioning.FieldPartitioningPolicy
extractPartitionValueForPersist, getPartitionField, getPartitionFieldName, getUnionUnpartitionableQueries, setPartitionField, setPartitionField, setUnionUnpartitionableQueriesMethods inherited from class org.eclipse.persistence.descriptors.partitioning.PartitioningPolicy
acquireAccessor, getAccessor, getName, initialize, setName
-
Field Details
-
partitions
Store the value partitions. Each partition maps a value to a connectionPool. -
partitionNames
Store the value partitions by name. Initialized at runtime. -
partitionValueTypeName
The type name of the partition value names. Initialized at runtime -
partitionValueType
The type of the partition values. Initialized from the type name at runtime. -
orderedPartitions
Use to track order for compute UCP index. -
defaultConnectionPool
The default connection pool is used for any unmapped values.
-
-
Constructor Details
-
ValuePartitioningPolicy
public ValuePartitioningPolicy() -
ValuePartitioningPolicy
-
ValuePartitioningPolicy
-
-
Method Details
-
convertClassNamesToClasses
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
-
setPartitionValueTypeName
INTERNAL: -
getOrderedPartitions
-
setOrderedPartitions
-
getDefaultConnectionPool
PUBLIC: Return the default connection pool used for any unmapped values. -
setDefaultConnectionPool
PUBLIC: Set the default connection pool used for any unmapped values. -
getPartitions
PUBLIC: Return the value partitions. Each partition maps a value to a connectionPool. -
setPartitions
PUBLIC: Set the value partitions. Each partition maps a value to a connectionPool. -
addPartition
PUBLIC: Add the value partition. -
addPartitionName
INTERNAL: Add partition values by name (will be initialized at runtime with the real class loader). -
getConnectionsForQuery
public 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, Object object, ClassDescriptor descriptor) INTERNAL: Allow for the persist call to assign the partition.- Overrides:
partitionPersistin classPartitioningPolicy
-