Class FieldPartitioningPolicy
java.lang.Object
org.eclipse.persistence.descriptors.partitioning.PartitioningPolicy
org.eclipse.persistence.descriptors.partitioning.FieldPartitioningPolicy
- All Implemented Interfaces:
Serializable
- Direct Known Subclasses:
HashPartitioningPolicy
,RangePartitioningPolicy
,ValuePartitioningPolicy
PUBLIC:
FieldPartitioningPolicy partitions access to a database cluster by a field value from the object,
such as the object's id, location, or tenant.
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 org.eclipse.persistence.internal.helper.DatabaseField
The column to partition by.protected boolean
If query does not have the partition field in it, should the query be sent to all databases.Fields inherited from class org.eclipse.persistence.descriptors.partitioning.PartitioningPolicy
name
-
Constructor Summary
ConstructorDescriptionFieldPartitioningPolicy
(String partitionField) FieldPartitioningPolicy
(String partitionField, boolean unionUnpartitionableQueries) -
Method Summary
Modifier and TypeMethodDescriptionprotected Object
extractPartitionValueForPersist
(org.eclipse.persistence.internal.sessions.AbstractSession session, Object object, ClassDescriptor descriptor) INTERNAL: If persist should be partitioned, extra value from object.org.eclipse.persistence.internal.helper.DatabaseField
PUBLIC: Return the database column or query parameter to partition queries by.PUBLIC: Return the database column or query parameter to partition queries by.boolean
PUBLIC: Return if queries that do not contain the partition field should be sent to every database and have the result unioned.void
setPartitionField
(String partitionField) PUBLIC: Set the database column or query parameter to partition queries by.void
setPartitionField
(org.eclipse.persistence.internal.helper.DatabaseField partitionField) PUBLIC: Set the database column or query parameter to partition queries by.void
setUnionUnpartitionableQueries
(boolean unionUnpartitionableQueries) PUBLIC: Set if queries that do not contain the partition field should be sent to every database and have the result unioned.Methods inherited from class org.eclipse.persistence.descriptors.partitioning.PartitioningPolicy
acquireAccessor, convertClassNamesToClasses, getAccessor, getConnectionsForQuery, getName, initialize, partitionPersist, setName
-
Field Details
-
partitionField
protected org.eclipse.persistence.internal.helper.DatabaseField partitionFieldThe column to partition by. -
unionUnpartitionableQueries
protected boolean unionUnpartitionableQueriesIf query does not have the partition field in it, should the query be sent to all databases.
-
-
Constructor Details
-
FieldPartitioningPolicy
public FieldPartitioningPolicy() -
FieldPartitioningPolicy
-
FieldPartitioningPolicy
-
-
Method Details
-
getPartitionField
public org.eclipse.persistence.internal.helper.DatabaseField getPartitionField()PUBLIC: Return the database column or query parameter to partition queries by. This is the table column name, not the class attribute name. The column value must be included in the query and should normally be part of the object's Id. This can also be the name of a query parameter. If a query does not contain the field the query will not be partitioned. -
setPartitionField
public void setPartitionField(org.eclipse.persistence.internal.helper.DatabaseField partitionField) PUBLIC: Set the database column or query parameter to partition queries by. This is the table column name, not the class attribute name. The column value must be included in the query and should normally be part of the object's Id. This can also be the name of a query parameter. If a query does not contain the field the query will not be partitioned. -
getPartitionFieldName
PUBLIC: Return the database column or query parameter to partition queries by. This is the table column name, not the class attribute name. The column value must be included in the query and should normally be part of the object's Id. This can also be the name of a query parameter. If a query does not contain the field the query will not be partitioned. -
setPartitionField
PUBLIC: Set the database column or query parameter to partition queries by. This is the table column name, not the class attribute name. The column value must be included in the query and should normally be part of the object's Id. This can also be the name of a query parameter. If a query does not contain the field the query will not be partitioned. -
getUnionUnpartitionableQueries
public boolean getUnionUnpartitionableQueries()PUBLIC: Return if queries that do not contain the partition field should be sent to every database and have the result unioned. -
setUnionUnpartitionableQueries
public void setUnionUnpartitionableQueries(boolean unionUnpartitionableQueries) PUBLIC: Set if queries that do not contain the partition field should be sent to every database and have the result unioned. -
extractPartitionValueForPersist
protected Object extractPartitionValueForPersist(org.eclipse.persistence.internal.sessions.AbstractSession session, Object object, ClassDescriptor descriptor) INTERNAL: If persist should be partitioned, extra value from object.
-