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
Modifier and TypeFieldDescriptionprotected String
The 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 Class
The type of the partition values.protected String
The type name of the partition value names.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
ConstructorDescriptionValuePartitioningPolicy
(String partitionField) ValuePartitioningPolicy
(String partitionField, boolean unionUnpartitionableQueries) -
Method Summary
Modifier and TypeMethodDescriptionvoid
addPartition
(Object value, String connectionPool) PUBLIC: Add the value partition.void
addPartitionName
(String valueName, String connectionPool) INTERNAL: Add partition values by name (will be initialized at runtime with the real class loader).void
convertClassNamesToClasses
(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.void
partitionPersist
(org.eclipse.persistence.internal.sessions.AbstractSession session, Object object, ClassDescriptor descriptor) INTERNAL: Allow for the persist call to assign the partition.void
setDefaultConnectionPool
(String defaultConnectionPool) PUBLIC: Set the default connection pool used for any unmapped values.void
setOrderedPartitions
(List<String> orderedPartitions) void
setPartitions
(Map<Object, String> partitions) PUBLIC: Set the value partitions.void
setPartitionValueTypeName
(String partitionValueTypeName) INTERNAL: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
-
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:
convertClassNamesToClasses
in 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:
getConnectionsForQuery
in 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:
partitionPersist
in classPartitioningPolicy
-