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 abstract class FieldPartitioningPolicy extends PartitioningPolicy
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 Details

    • partitionField

      protected org.eclipse.persistence.internal.helper.DatabaseField partitionField
      The column to partition by.
    • unionUnpartitionableQueries

      protected boolean unionUnpartitionableQueries
      If query does not have the partition field in it, should the query be sent to all databases.
  • Constructor Details

    • FieldPartitioningPolicy

      public FieldPartitioningPolicy()
    • FieldPartitioningPolicy

      public FieldPartitioningPolicy(String partitionField)
    • FieldPartitioningPolicy

      public FieldPartitioningPolicy(String partitionField, boolean unionUnpartitionableQueries)
  • 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 String 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 void setPartitionField(String 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.
    • 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.