Class PersistentClass

java.lang.Object
org.hibernate.mapping.PersistentClass
All Implemented Interfaces:
Serializable, Filterable, MetaAttributable
Direct Known Subclasses:
RootClass, Subclass

public abstract class PersistentClass extends Object implements Serializable, Filterable, MetaAttributable
Mapping for an entity.
See Also:
  • Field Details

    • NULL_DISCRIMINATOR_MAPPING

      public static final String NULL_DISCRIMINATOR_MAPPING
      See Also:
    • NOT_NULL_DISCRIMINATOR_MAPPING

      public static final String NOT_NULL_DISCRIMINATOR_MAPPING
      See Also:
    • synchronizedTables

      protected final Set synchronizedTables
    • optimisticLockMode

      protected int optimisticLockMode
  • Constructor Details

    • PersistentClass

      public PersistentClass()
  • Method Details

    • getClassName

      public String getClassName()
    • setClassName

      public void setClassName(String className)
    • getProxyInterfaceName

      public String getProxyInterfaceName()
    • setProxyInterfaceName

      public void setProxyInterfaceName(String proxyInterfaceName)
    • getMappedClass

      public Class getMappedClass() throws MappingException
      Throws:
      MappingException
    • getProxyInterface

      public Class getProxyInterface()
    • useDynamicInsert

      public boolean useDynamicInsert()
    • getSubclassId

      public abstract int getSubclassId()
    • useDynamicUpdate

      public boolean useDynamicUpdate()
    • setDynamicInsert

      public void setDynamicInsert(boolean dynamicInsert)
    • setDynamicUpdate

      public void setDynamicUpdate(boolean dynamicUpdate)
    • getDiscriminatorValue

      public String getDiscriminatorValue()
    • addSubclass

      public void addSubclass(Subclass subclass) throws MappingException
      Throws:
      MappingException
    • hasSubclasses

      public boolean hasSubclasses()
    • getSubclassSpan

      public int getSubclassSpan()
    • getSubclassIterator

      public Iterator getSubclassIterator()
      Iterate over subclasses in a special 'order', most derived subclasses first.
    • getSubclassClosureIterator

      public Iterator getSubclassClosureIterator()
    • getIdentityTable

      public Table getIdentityTable()
    • getDirectSubclasses

      public Iterator getDirectSubclasses()
    • addProperty

      public void addProperty(Property p)
    • getTable

      public abstract Table getTable()
    • getEntityName

      public String getEntityName()
    • isMutable

      public abstract boolean isMutable()
    • hasIdentifierProperty

      public abstract boolean hasIdentifierProperty()
    • getIdentifierProperty

      public abstract Property getIdentifierProperty()
    • getDeclaredIdentifierProperty

      public abstract Property getDeclaredIdentifierProperty()
    • getIdentifier

      public abstract KeyValue getIdentifier()
    • getVersion

      public abstract Property getVersion()
    • getDeclaredVersion

      public abstract Property getDeclaredVersion()
    • getDiscriminator

      public abstract Value getDiscriminator()
    • isInherited

      public abstract boolean isInherited()
    • isPolymorphic

      public abstract boolean isPolymorphic()
    • isVersioned

      public abstract boolean isVersioned()
    • getCacheConcurrencyStrategy

      public abstract String getCacheConcurrencyStrategy()
    • getSuperclass

      public abstract PersistentClass getSuperclass()
    • isExplicitPolymorphism

      public abstract boolean isExplicitPolymorphism()
    • isDiscriminatorInsertable

      public abstract boolean isDiscriminatorInsertable()
    • getPropertyClosureIterator

      public abstract Iterator getPropertyClosureIterator()
    • getTableClosureIterator

      public abstract Iterator getTableClosureIterator()
    • getKeyClosureIterator

      public abstract Iterator getKeyClosureIterator()
    • addSubclassProperty

      protected void addSubclassProperty(Property prop)
    • addSubclassJoin

      protected void addSubclassJoin(Join join)
    • addSubclassTable

      protected void addSubclassTable(Table subclassTable)
    • getSubclassPropertyClosureIterator

      public Iterator getSubclassPropertyClosureIterator()
    • getSubclassJoinClosureIterator

      public Iterator getSubclassJoinClosureIterator()
    • getSubclassTableClosureIterator

      public Iterator getSubclassTableClosureIterator()
    • isClassOrSuperclassJoin

      public boolean isClassOrSuperclassJoin(Join join)
    • isClassOrSuperclassTable

      public boolean isClassOrSuperclassTable(Table closureTable)
    • isLazy

      public boolean isLazy()
    • setLazy

      public void setLazy(boolean lazy)
    • hasEmbeddedIdentifier

      public abstract boolean hasEmbeddedIdentifier()
    • getEntityPersisterClass

      public abstract Class getEntityPersisterClass()
    • setEntityPersisterClass

      public abstract void setEntityPersisterClass(Class classPersisterClass)
    • getRootTable

      public abstract Table getRootTable()
    • getRootClass

      public abstract RootClass getRootClass()
    • getKey

      public abstract KeyValue getKey()
    • setDiscriminatorValue

      public void setDiscriminatorValue(String discriminatorValue)
    • setEntityName

      public void setEntityName(String entityName)
    • createPrimaryKey

      public void createPrimaryKey()
    • getWhere

      public abstract String getWhere()
    • getBatchSize

      public int getBatchSize()
    • setBatchSize

      public void setBatchSize(int batchSize)
    • hasSelectBeforeUpdate

      public boolean hasSelectBeforeUpdate()
    • setSelectBeforeUpdate

      public void setSelectBeforeUpdate(boolean selectBeforeUpdate)
    • getReferenceablePropertyIterator

      public Iterator getReferenceablePropertyIterator()
      Build an iterator of properties which are "referenceable".
      Returns:
      The property iterator.
      See Also:
    • getReferencedProperty

      public Property getReferencedProperty(String propertyPath) throws MappingException
      Given a property path, locate the appropriate referenceable property reference.

      A referenceable property is a property which can be a target of a foreign-key mapping (an identifier or explcitly named in a property-ref).

      Parameters:
      propertyPath - The property path to resolve into a property reference.
      Returns:
      The property reference (never null).
      Throws:
      MappingException - If the property could not be found.
    • getRecursiveProperty

      public Property getRecursiveProperty(String propertyPath) throws MappingException
      Throws:
      MappingException
    • getProperty

      public Property getProperty(String propertyName) throws MappingException
      Throws:
      MappingException
    • getOptimisticLockMode

      public abstract int getOptimisticLockMode()
    • setOptimisticLockMode

      public void setOptimisticLockMode(int optimisticLockMode)
    • validate

      public void validate(Mapping mapping) throws MappingException
      Throws:
      MappingException
    • isDiscriminatorValueNotNull

      public boolean isDiscriminatorValueNotNull()
    • isDiscriminatorValueNull

      public boolean isDiscriminatorValueNull()
    • getMetaAttributes

      public Map getMetaAttributes()
      Specified by:
      getMetaAttributes in interface MetaAttributable
    • setMetaAttributes

      public void setMetaAttributes(Map metas)
      Specified by:
      setMetaAttributes in interface MetaAttributable
    • getMetaAttribute

      public MetaAttribute getMetaAttribute(String name)
      Specified by:
      getMetaAttribute in interface MetaAttributable
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getJoinIterator

      public Iterator getJoinIterator()
    • getJoinClosureIterator

      public Iterator getJoinClosureIterator()
    • addJoin

      public void addJoin(Join join)
    • getJoinClosureSpan

      public int getJoinClosureSpan()
    • getPropertyClosureSpan

      public int getPropertyClosureSpan()
    • getJoinNumber

      public int getJoinNumber(Property prop)
    • getPropertyIterator

      public Iterator getPropertyIterator()
      Build an iterator over the properties defined on this class. The returned iterator only accounts for "normal" properties (i.e. non-identifier properties).

      Differs from getUnjoinedPropertyIterator() in that the iterator we return here will include properties defined as part of a join.

      Returns:
      An iterator over the "normal" properties.
    • getUnjoinedPropertyIterator

      public Iterator getUnjoinedPropertyIterator()
      Build an iterator over the properties defined on this class which are not defined as part of a join. As with getPropertyIterator(), the returned iterator only accounts for non-identifier properties.
      Returns:
      An iterator over the non-joined "normal" properties.
    • setCustomSQLInsert

      public void setCustomSQLInsert(String customSQLInsert, boolean callable, ExecuteUpdateResultCheckStyle checkStyle)
    • getCustomSQLInsert

      public String getCustomSQLInsert()
    • isCustomInsertCallable

      public boolean isCustomInsertCallable()
    • getCustomSQLInsertCheckStyle

      public ExecuteUpdateResultCheckStyle getCustomSQLInsertCheckStyle()
    • setCustomSQLUpdate

      public void setCustomSQLUpdate(String customSQLUpdate, boolean callable, ExecuteUpdateResultCheckStyle checkStyle)
    • getCustomSQLUpdate

      public String getCustomSQLUpdate()
    • isCustomUpdateCallable

      public boolean isCustomUpdateCallable()
    • getCustomSQLUpdateCheckStyle

      public ExecuteUpdateResultCheckStyle getCustomSQLUpdateCheckStyle()
    • setCustomSQLDelete

      public void setCustomSQLDelete(String customSQLDelete, boolean callable, ExecuteUpdateResultCheckStyle checkStyle)
    • getCustomSQLDelete

      public String getCustomSQLDelete()
    • isCustomDeleteCallable

      public boolean isCustomDeleteCallable()
    • getCustomSQLDeleteCheckStyle

      public ExecuteUpdateResultCheckStyle getCustomSQLDeleteCheckStyle()
    • addFilter

      public void addFilter(String name, String condition)
      Specified by:
      addFilter in interface Filterable
    • getFilterMap

      public Map getFilterMap()
      Specified by:
      getFilterMap in interface Filterable
    • isForceDiscriminator

      public boolean isForceDiscriminator()
    • isJoinedSubclass

      public abstract boolean isJoinedSubclass()
    • getLoaderName

      public String getLoaderName()
    • setLoaderName

      public void setLoaderName(String loaderName)
    • getSynchronizedTables

      public abstract Set getSynchronizedTables()
    • addSynchronizedTable

      public void addSynchronizedTable(String table)
    • isAbstract

      public Boolean isAbstract()
    • setAbstract

      public void setAbstract(Boolean isAbstract)
    • checkColumnDuplication

      protected void checkColumnDuplication(Set distinctColumns, Iterator columns) throws MappingException
      Throws:
      MappingException
    • checkPropertyColumnDuplication

      protected void checkPropertyColumnDuplication(Set distinctColumns, Iterator properties) throws MappingException
      Throws:
      MappingException
    • getNonDuplicatedPropertyIterator

      protected Iterator getNonDuplicatedPropertyIterator()
    • getDiscriminatorColumnIterator

      protected Iterator getDiscriminatorColumnIterator()
    • checkColumnDuplication

      protected void checkColumnDuplication()
    • accept

      public abstract Object accept(PersistentClassVisitor mv)
    • getNodeName

      public String getNodeName()
    • setNodeName

      public void setNodeName(String nodeName)
    • getJpaEntityName

      public String getJpaEntityName()
    • setJpaEntityName

      public void setJpaEntityName(String jpaEntityName)
    • hasPojoRepresentation

      public boolean hasPojoRepresentation()
    • hasDom4jRepresentation

      public boolean hasDom4jRepresentation()
    • hasSubselectLoadableCollections

      public boolean hasSubselectLoadableCollections()
    • setSubselectLoadableCollections

      public void setSubselectLoadableCollections(boolean hasSubselectCollections)
    • prepareTemporaryTables

      public void prepareTemporaryTables(Mapping mapping, Dialect dialect)
    • getTemporaryIdTableName

      public String getTemporaryIdTableName()
    • getTemporaryIdTableDDL

      public String getTemporaryIdTableDDL()
    • getIdentifierMapper

      public Component getIdentifierMapper()
    • getDeclaredIdentifierMapper

      public Component getDeclaredIdentifierMapper()
    • setDeclaredIdentifierMapper

      public void setDeclaredIdentifierMapper(Component declaredIdentifierMapper)
    • hasIdentifierMapper

      public boolean hasIdentifierMapper()
    • setIdentifierMapper

      public void setIdentifierMapper(Component handle)
    • addTuplizer

      public void addTuplizer(EntityMode entityMode, String implClassName)
    • getTuplizerImplClassName

      public String getTuplizerImplClassName(EntityMode mode)
    • getTuplizerMap

      public Map getTuplizerMap()
    • hasNaturalId

      public boolean hasNaturalId()
    • isLazyPropertiesCacheable

      public abstract boolean isLazyPropertiesCacheable()
    • getDeclaredPropertyIterator

      public Iterator getDeclaredPropertyIterator()
    • addMappedsuperclassProperty

      public void addMappedsuperclassProperty(Property p)
    • getSuperMappedSuperclass

      public MappedSuperclass getSuperMappedSuperclass()
    • setSuperMappedSuperclass

      public void setSuperMappedSuperclass(MappedSuperclass superMappedSuperclass)