Class SingleTableMultitenantPolicy

java.lang.Object
org.eclipse.persistence.descriptors.SingleTableMultitenantPolicy
All Implemented Interfaces:
Serializable, MultitenantPolicy
Direct Known Subclasses:
VPDMultitenantPolicy

public class SingleTableMultitenantPolicy extends Object implements MultitenantPolicy
A single table "striped" multitenant policy.
See Also:
Author:
Guy Pelletier
  • Field Details

    • includeTenantCriteria

      protected boolean includeTenantCriteria
    • descriptor

      protected ClassDescriptor descriptor
    • tenantDiscriminatorFields

      protected Map<org.eclipse.persistence.internal.helper.DatabaseField,String> tenantDiscriminatorFields
    • tenantDiscriminatorFieldsKeyedOnContext

      protected Map<String,List<org.eclipse.persistence.internal.helper.DatabaseField>> tenantDiscriminatorFieldsKeyedOnContext
  • Constructor Details

    • SingleTableMultitenantPolicy

      public SingleTableMultitenantPolicy(ClassDescriptor desc)
  • Method Details

    • addFieldsToRow

      public void addFieldsToRow(org.eclipse.persistence.internal.sessions.AbstractRecord row, org.eclipse.persistence.internal.sessions.AbstractSession session)
      INTERNAL: Add the tenant discriminator fields to the row.
      Specified by:
      addFieldsToRow in interface MultitenantPolicy
    • addToTableDefinition

      public void addToTableDefinition(TableDefinition tableDefinition)
      INTERNAL:
      Specified by:
      addToTableDefinition in interface MultitenantPolicy
    • clone

      public MultitenantPolicy clone(ClassDescriptor descriptor)
      INTERNAL:
      Specified by:
      clone in interface MultitenantPolicy
    • getDescriptor

      public ClassDescriptor getDescriptor()
      INTERNAL:
    • addTenantDiscriminatorField

      public void addTenantDiscriminatorField(String property, org.eclipse.persistence.internal.helper.DatabaseField field)
      INTERNAL: Add a tenant discriminator field to the policy.
    • getTenantDiscriminatorFields

      public Map<org.eclipse.persistence.internal.helper.DatabaseField,String> getTenantDiscriminatorFields()
      INTERNAL:
    • getTenantDiscriminatorFieldsKeyedOnContext

      public Map<String,List<org.eclipse.persistence.internal.helper.DatabaseField>> getTenantDiscriminatorFieldsKeyedOnContext()
      INTERNAL:
    • hasTenantDiscriminatorFields

      public boolean hasTenantDiscriminatorFields()
      INTERNAL: Return if this descriptor has specified some tenant discriminator fields.
    • initialize

      public void initialize(org.eclipse.persistence.internal.sessions.AbstractSession session) throws DescriptorException
      INTERNAL: Initialize the mappings as a separate step. This is done as a separate step to ensure that inheritance has been first resolved.
      Specified by:
      initialize in interface MultitenantPolicy
      Throws:
      DescriptorException
    • isSingleTableMultitenantPolicy

      public boolean isSingleTableMultitenantPolicy()
      INTERNAL:
      Specified by:
      isSingleTableMultitenantPolicy in interface MultitenantPolicy
    • isTablePerMultitenantPolicy

      public boolean isTablePerMultitenantPolicy()
      INTERNAL:
      Specified by:
      isTablePerMultitenantPolicy in interface MultitenantPolicy
    • isSchemaPerMultitenantPolicy

      public boolean isSchemaPerMultitenantPolicy()
      INTERNAL:
      Specified by:
      isSchemaPerMultitenantPolicy in interface MultitenantPolicy
    • postInitialize

      public void postInitialize(org.eclipse.persistence.internal.sessions.AbstractSession session)
      INTERNAL: Subclasses that need to add field to an expresison should override this method.
      Specified by:
      postInitialize in interface MultitenantPolicy
    • preInitialize

      public void preInitialize(org.eclipse.persistence.internal.sessions.AbstractSession session) throws DescriptorException
      INTERNAL: Allow the descriptor to initialize any dependencies on this session.
      Specified by:
      preInitialize in interface MultitenantPolicy
      Throws:
      DescriptorException
    • setDescriptor

      public void setDescriptor(ClassDescriptor descriptor)
      INTERNAL:
    • setIncludeTenantCriteria

      public void setIncludeTenantCriteria(boolean includeTenantCriteria)
      ADVANCED: Boolean used to indicate if the database requires the tenant criteria to be added to the SELECT, UPDATE, and DELETE queries. By default this is done but when set to false the queries will not be modified and it will be up to the application or database to ensure that the correct criteria is applied to all queries.
      See Also:
    • setTenantDiscriminatorFields

      public void setTenantDiscriminatorFields(Map<org.eclipse.persistence.internal.helper.DatabaseField,String> tenantDiscriminatorFields)
      INTERNAL: