public class

JoinedSubclassEntityPersister

extends AbstractEntityPersister
java.lang.Object
   ↳ org.hibernate.persister.entity.AbstractEntityPersister
     ↳ org.hibernate.persister.entity.JoinedSubclassEntityPersister

Class Overview

An EntityPersister implementing the normalized "table-per-subclass" mapping strategy

Summary

[Expand]
Inherited Constants
From class org.hibernate.persister.entity.AbstractEntityPersister
From interface org.hibernate.persister.entity.EntityPersister
From interface org.hibernate.persister.entity.Loadable
[Expand]
Inherited Fields
From class org.hibernate.persister.entity.AbstractEntityPersister
From interface org.hibernate.intercept.LazyPropertyInitializer
Public Constructors
JoinedSubclassEntityPersister(PersistentClass persistentClass, EntityRegionAccessStrategy cacheAccessStrategy, SessionFactoryImplementor factory, Mapping mapping)
Public Methods
void addDiscriminatorToSelect(SelectFragment select, String name, String suffix)
String filterFragment(String alias)
String fromTableFragment(String alias)
String generateFilterConditionAlias(String rootAlias)
The alias used for any filter conditions (mapped where-fragments or enabled-filters).
String[] getConstraintOrderedTableNameClosure()
String[][] getContraintOrderedTableKeyColumnClosure()
String getDiscriminatorSQLValue()
Type getDiscriminatorType()
String[] getIdentifierColumnNames()
Get the names of columns used to persist the identifier
String[] getIdentifierColumnReaderTemplates()
String[] getIdentifierColumnReaders()
Serializable[] getPropertySpaces()
String getPropertyTableName(String propertyName)
String getRootTableAlias(String drivingAlias)
Get the SQL alias this persister would use for the root table given the passed driving alias.
String getRootTableName()
Locks are always applied to the "root table".
String getSubclassForDiscriminatorValue(Object value)
Queryable.Declarer getSubclassPropertyDeclarer(String propertyPath)
Determine whether the given property is declared by our mapped class, our super class, or one of our subclasses...
String getSubclassPropertyTableName(int i)
String getSubclassTableName(int j)
Get the name of the table with the given index from the internal array.
int getSubclassTableSpan()
String getTableName()
int getTableSpan()
boolean isMultiTable()
Is the inheritence hierarchy described by this persister contained across multiple tables?
String[] toColumns(String alias, String propertyName)
Given a query alias and a property path, return the qualified column name
Protected Methods
String[] getKeyColumns(int j)
int[] getPropertyTableNumbers()
int[] getPropertyTableNumbersInSelect()
int[] getSubclassColumnTableNumberClosure()
int[] getSubclassFormulaTableNumberClosure()
int getSubclassPropertyTableNumber(int i)
String[] getSubclassTableKeyColumns(int j)
String getTableName(int j)
boolean isClassOrSuperclassTable(int j)
boolean isPropertyOfTable(int property, int j)
boolean isSubclassTableLazy(int j)
boolean isSubclassTableSequentialSelect(int j)
boolean isTableCascadeDeleteEnabled(int j)
[Expand]
Inherited Methods
From class org.hibernate.persister.entity.AbstractEntityPersister
From class java.lang.Object
From interface org.hibernate.cache.OptimisticCacheSource
From interface org.hibernate.id.PostInsertIdentityPersister
From interface org.hibernate.intercept.LazyPropertyInitializer
From interface org.hibernate.metadata.ClassMetadata
From interface org.hibernate.persister.entity.EntityPersister
From interface org.hibernate.persister.entity.Joinable
From interface org.hibernate.persister.entity.Loadable
From interface org.hibernate.persister.entity.Lockable
From interface org.hibernate.persister.entity.OuterJoinLoadable
From interface org.hibernate.persister.entity.PropertyMapping
From interface org.hibernate.persister.entity.Queryable
From interface org.hibernate.persister.entity.SQLLoadable
From interface org.hibernate.persister.entity.UniqueKeyLoadable

Public Constructors

public JoinedSubclassEntityPersister (PersistentClass persistentClass, EntityRegionAccessStrategy cacheAccessStrategy, SessionFactoryImplementor factory, Mapping mapping)

Public Methods

public void addDiscriminatorToSelect (SelectFragment select, String name, String suffix)

public String filterFragment (String alias)

public String fromTableFragment (String alias)

public String generateFilterConditionAlias (String rootAlias)

The alias used for any filter conditions (mapped where-fragments or enabled-filters).

This may or may not be different from the root alias depending upon the inheritence mapping strategy.

Parameters
rootAlias The root alias
Returns
  • The alias used for "filter conditions" within the where clause.

public String[] getConstraintOrderedTableNameClosure ()

public String[][] getContraintOrderedTableKeyColumnClosure ()

public String getDiscriminatorSQLValue ()

public Type getDiscriminatorType ()

public String[] getIdentifierColumnNames ()

Get the names of columns used to persist the identifier

public String[] getIdentifierColumnReaderTemplates ()

public String[] getIdentifierColumnReaders ()

public Serializable[] getPropertySpaces ()

public String getPropertyTableName (String propertyName)

public String getRootTableAlias (String drivingAlias)

Get the SQL alias this persister would use for the root table given the passed driving alias.

Parameters
drivingAlias The driving alias; or the alias for the table mapped by this persister in the hierarchy.
Returns
  • The root table alias.

public String getRootTableName ()

Locks are always applied to the "root table".

Returns
  • The root table name

public String getSubclassForDiscriminatorValue (Object value)

public Queryable.Declarer getSubclassPropertyDeclarer (String propertyPath)

Determine whether the given property is declared by our mapped class, our super class, or one of our subclasses...

Note: the method is called 'subclass property...' simply for consistency sake (e.g. getSubclassPropertyTableNumber(String)

Parameters
propertyPath The property name.
Returns
  • The property declarer

public String getSubclassPropertyTableName (int i)

public String getSubclassTableName (int j)

Get the name of the table with the given index from the internal array.

Parameters
j The index into the internal array.

public int getSubclassTableSpan ()

public String getTableName ()

public int getTableSpan ()

public boolean isMultiTable ()

Is the inheritence hierarchy described by this persister contained across multiple tables?

Returns
  • True if the inheritence hierarchy is spread across multiple tables; false otherwise.

public String[] toColumns (String alias, String propertyName)

Given a query alias and a property path, return the qualified column name

Protected Methods

protected String[] getKeyColumns (int j)

protected int[] getPropertyTableNumbers ()

protected int[] getPropertyTableNumbersInSelect ()

protected int[] getSubclassColumnTableNumberClosure ()

protected int[] getSubclassFormulaTableNumberClosure ()

protected int getSubclassPropertyTableNumber (int i)

protected String[] getSubclassTableKeyColumns (int j)

protected String getTableName (int j)

protected boolean isClassOrSuperclassTable (int j)

protected boolean isPropertyOfTable (int property, int j)

protected boolean isSubclassTableLazy (int j)

protected boolean isSubclassTableSequentialSelect (int j)

protected boolean isTableCascadeDeleteEnabled (int j)