org.hibernate.persister.entity
Interface EntityPersister

All Superinterfaces:
OptimisticCacheSource
All Known Subinterfaces:
Loadable, Lockable, OuterJoinLoadable, PostInsertIdentityPersister, Queryable, SQLLoadable, UniqueKeyLoadable
All Known Implementing Classes:
AbstractEntityPersister, JoinedSubclassEntityPersister, SingleTableEntityPersister, UnionSubclassEntityPersister

public interface EntityPersister
extends OptimisticCacheSource

Implementors define mapping and persistence logic for a particular strategy of entity mapping. An instance of entity persisters corresponds to a given mapped entity.

Implementors must be threadsafe (preferrably immutable) and must provide a constructor matching the signature of: PersistentClass, SessionFactoryImplementor

Author:
Gavin King

Field Summary
static java.lang.String ENTITY_ID
          The property name of the "special" identifier property in HQL
 
Method Summary
 void afterInitialize(java.lang.Object entity, boolean lazyPropertiesAreUnfetched, SessionImplementor session)
          Called just after the entities properties have been initialized
 void afterReassociate(java.lang.Object entity, SessionImplementor session)
          Called just after the entity has been reassociated with the session
 boolean canExtractIdOutOfEntity()
          Determine whether detahced instances of this entity carry their own identifier value.
 java.lang.Object createProxy(java.io.Serializable id, SessionImplementor session)
          Create a new proxy instance
 void delete(java.io.Serializable id, java.lang.Object version, java.lang.Object object, SessionImplementor session)
          Delete a persistent instance
 int[] findDirty(java.lang.Object[] currentState, java.lang.Object[] previousState, java.lang.Object owner, SessionImplementor session)
          Compare the two snapshots to determine if they represent dirty state.
 int[] findModified(java.lang.Object[] old, java.lang.Object[] current, java.lang.Object object, SessionImplementor session)
          Compare the two snapshots to determine if they represent modified state.
 java.lang.Object forceVersionIncrement(java.io.Serializable id, java.lang.Object currentVersion, SessionImplementor session)
           
 EntityRegionAccessStrategy getCacheAccessStrategy()
          Get the cache (optional operation)
 CacheEntryStructure getCacheEntryStructure()
          Get the cache structure
 ClassMetadata getClassMetadata()
          Get the user-visible metadata for the class (optional operation)
 java.lang.Class getConcreteProxyClass(EntityMode entityMode)
          Get the proxy interface that instances of this concrete class will be cast to (optional operation).
 java.lang.Object getCurrentVersion(java.io.Serializable id, SessionImplementor session)
          Get the current version of the object, or return null if there is no row for the given identifier.
 java.lang.Object[] getDatabaseSnapshot(java.io.Serializable id, SessionImplementor session)
          Get the current database state of the object, in a "hydrated" form, without resolving identifiers
 EntityMetamodel getEntityMetamodel()
          Retrieve the underlying entity metamodel instance...
 java.lang.String getEntityName()
          The entity name which this persister maps.
 SessionFactoryImplementor getFactory()
          Return the SessionFactory to which this persister "belongs".
 java.io.Serializable getIdentifier(java.lang.Object object, EntityMode entityMode)
          Get the identifier of an instance (throw an exception if no identifier property)
 IdentifierGenerator getIdentifierGenerator()
          Determine which identifier generation strategy is used for this entity.
 java.lang.String getIdentifierPropertyName()
          Get the name of the identifier property (or return null) - need not return the name of an actual Java property
 Type getIdentifierType()
          Get the identifier type
 java.lang.Class getMappedClass(EntityMode entityMode)
          The persistent class, or null
 int[] getNaturalIdentifierProperties()
          If the entity defines a natural id (hasNaturalIdentifier()), which properties make up the natural id.
 java.lang.Object[] getNaturalIdentifierSnapshot(java.io.Serializable id, SessionImplementor session)
          Retrieve the current state of the natural-id properties from the database.
 CascadeStyle[] getPropertyCascadeStyles()
          Get the cascade styles of the propertes (optional operation)
 boolean[] getPropertyCheckability()
          Get the "checkability" of the properties of this class (is the property dirty checked, does the cache need to be updated)
 boolean[] getPropertyInsertability()
          Get the "insertability" of the properties of this class (does the property appear in an SQL INSERT)
 ValueInclusion[] getPropertyInsertGenerationInclusions()
          Which of the properties of this class are database generated values on insert?
 boolean[] getPropertyLaziness()
           
 java.lang.String[] getPropertyNames()
          Get the names of the class properties - doesn't have to be the names of the actual Java properties (used for XML generation only)
 boolean[] getPropertyNullability()
          Get the nullability of the properties of this class
 java.io.Serializable[] getPropertySpaces()
          Returns an array of objects that identify spaces in which properties of this entity are persisted, for instances of this class only.
 Type getPropertyType(java.lang.String propertyName)
          Get the type of a particular property by name.
 Type[] getPropertyTypes()
          Get the Hibernate types of the class properties
 boolean[] getPropertyUpdateability()
          Get the "updateability" of the properties of this class (does the property appear in an SQL UPDATE)
 ValueInclusion[] getPropertyUpdateGenerationInclusions()
          Which of the properties of this class are database generated values on update?
 java.lang.Object getPropertyValue(java.lang.Object object, int i, EntityMode entityMode)
          Get the value of a particular property
 java.lang.Object getPropertyValue(java.lang.Object object, java.lang.String propertyName, EntityMode entityMode)
          Get the value of a particular property
 java.lang.Object[] getPropertyValues(java.lang.Object object, EntityMode entityMode)
          Return the (loaded) values of the mapped properties of the object (not including backrefs)
 java.lang.Object[] getPropertyValuesToInsert(java.lang.Object object, java.util.Map mergeMap, SessionImplementor session)
          Return the values of the insertable properties of the object (including backrefs)
 boolean[] getPropertyVersionability()
          Get the "versionability" of the properties of this class (is the property optimistic-locked)
 java.io.Serializable[] getQuerySpaces()
          Returns an array of objects that identify spaces in which properties of this entity are persisted, for instances of this class and its subclasses.
 java.lang.String getRootEntityName()
          Returns an object that identifies the space in which identifiers of this entity hierarchy are unique.
 EntityPersister getSubclassEntityPersister(java.lang.Object instance, SessionFactoryImplementor factory, EntityMode entityMode)
          Get the persister for an instance of this class or a subclass
 java.lang.Object getVersion(java.lang.Object object, EntityMode entityMode)
          Get the version number (or timestamp) from the object's version property (or return null if not versioned)
 int getVersionProperty()
          If isVersioned(), then what is the index of the property holding the locking value.
 VersionType getVersionType()
          If isVersioned(), then what is the type of the property holding the locking value.
 EntityMode guessEntityMode(java.lang.Object object)
          Try to discover the entity mode from the entity instance
 boolean hasCache()
          Does this class have a cache.
 boolean hasCascades()
          Determine whether this entity has any non-none cascading.
 boolean hasCollections()
          Determine whether this entity contains references to persistent collections.
 boolean hasIdentifierProperty()
          Determine whether the entity has a particular property holding the identifier value.
 boolean hasInsertGeneratedProperties()
          Does this entity define any properties as being database generated on insert?
 boolean hasLazyProperties()
          Determine whether this entity defines any lazy properties (ala bytecode instrumentation).
 boolean hasMutableProperties()
          Determine whether any properties of this entity are considered mutable.
 boolean hasNaturalIdentifier()
          Determine whether this entity defines a natural identifier.
 boolean hasProxy()
          Determine whether this entity supports dynamic proxies.
 boolean hasSubselectLoadableCollections()
          Determine whether this entity contains references to persistent collections which are fetchable by subselect?
 boolean hasUninitializedLazyProperties(java.lang.Object object, EntityMode entityMode)
          Does the given instance have any uninitialized lazy properties?
 boolean hasUpdateGeneratedProperties()
          Does this entity define any properties as being database generated on update?
 boolean implementsLifecycle(EntityMode entityMode)
          Does the class implement the Lifecycle interface.
 boolean implementsValidatable(EntityMode entityMode)
          Does the class implement the Validatable interface.
 java.io.Serializable insert(java.lang.Object[] fields, java.lang.Object object, SessionImplementor session)
          Persist an instance, using a natively generated identifier (optional operation)
 void insert(java.io.Serializable id, java.lang.Object[] fields, java.lang.Object object, SessionImplementor session)
          Persist an instance
 java.lang.Object instantiate(java.io.Serializable id, EntityMode entityMode)
          Create a class instance initialized with the given identifier
 boolean isBatchLoadable()
          Is batch loading enabled?
 boolean isCacheInvalidationRequired()
          Should we always invalidate the cache instead of recaching updated state
 boolean isIdentifierAssignedByInsert()
          Are identifiers of this entity assigned known before the insert execution? Or, are they generated (in the database) by the insert execution.
 boolean isInherited()
          Determine whether the entity is inherited one or more other entities.
 boolean isInstance(java.lang.Object object, EntityMode entityMode)
          Is the given object an instance of this entity?
 boolean isInstrumented(EntityMode entityMode)
          Has the class actually been bytecode instrumented?
 boolean isLazyPropertiesCacheable()
          Should lazy properties of this entity be cached?
 boolean isMutable()
          Determine whether instances of this entity are considered mutable.
 boolean isSelectBeforeUpdateRequired()
          Is select snapshot before update enabled?
 boolean isSubclassEntityName(java.lang.String entityName)
          Determine whether the given name represents a subclass entity (or this entity itself) of the entity mapped by this persister.
 java.lang.Boolean isTransient(java.lang.Object object, SessionImplementor session)
          Is this a new transient instance?
 boolean isVersioned()
          Determine whether optimistic locking by column is enabled for this entity.
 boolean isVersionPropertyGenerated()
          Does this entity contain a version property that is defined to be database generated?
 java.lang.Object load(java.io.Serializable id, java.lang.Object optionalObject, LockMode lockMode, SessionImplementor session)
          Load an instance of the persistent class.
 void lock(java.io.Serializable id, java.lang.Object version, java.lang.Object object, LockMode lockMode, SessionImplementor session)
          Do a version check (optional operation)
 void postInstantiate()
          Finish the initialization of this object.
 void processInsertGeneratedProperties(java.io.Serializable id, java.lang.Object entity, java.lang.Object[] state, SessionImplementor session)
          Perform a select to retrieve the values of any generated properties back from the database, injecting these generated values into the given entity as well as writing this state to the PersistenceContext.
 void processUpdateGeneratedProperties(java.io.Serializable id, java.lang.Object entity, java.lang.Object[] state, SessionImplementor session)
          Perform a select to retrieve the values of any generated properties back from the database, injecting these generated values into the given entity as well as writing this state to the PersistenceContext.
 void resetIdentifier(java.lang.Object entity, java.io.Serializable currentId, java.lang.Object currentVersion, EntityMode entityMode)
          Set the identifier and version of the given instance back to its "unsaved" value, returning the id
 void setIdentifier(java.lang.Object object, java.io.Serializable id, EntityMode entityMode)
          Set the identifier of an instance (or do nothing if no identifier property)
 void setPropertyValue(java.lang.Object object, int i, java.lang.Object value, EntityMode entityMode)
          Set the value of a particular property
 void setPropertyValues(java.lang.Object object, java.lang.Object[] values, EntityMode entityMode)
          Set the given values to the mapped properties of the given object
 void update(java.io.Serializable id, java.lang.Object[] fields, int[] dirtyFields, boolean hasDirtyCollection, java.lang.Object[] oldFields, java.lang.Object oldVersion, java.lang.Object object, java.lang.Object rowId, SessionImplementor session)
          Update a persistent instance
 
Methods inherited from interface org.hibernate.cache.OptimisticCacheSource
getVersionComparator
 

Field Detail

ENTITY_ID

static final java.lang.String ENTITY_ID
The property name of the "special" identifier property in HQL

See Also:
Constant Field Values
Method Detail

postInstantiate

void postInstantiate()
                     throws MappingException
Finish the initialization of this object.

Called only once per SessionFactory lifecycle, after all entity persisters have been instantiated.

Throws:
MappingException - Indicates an issue in the metdata.

getFactory

SessionFactoryImplementor getFactory()
Return the SessionFactory to which this persister "belongs".

Returns:
The owning SessionFactory.

getRootEntityName

java.lang.String getRootEntityName()
Returns an object that identifies the space in which identifiers of this entity hierarchy are unique. Might be a table name, a JNDI URL, etc.

Returns:
The root entity name.

getEntityName

java.lang.String getEntityName()
The entity name which this persister maps.

Returns:
The name of the entity which this persister maps.

getEntityMetamodel

EntityMetamodel getEntityMetamodel()
Retrieve the underlying entity metamodel instance...

Returns:
The metamodel

isSubclassEntityName

boolean isSubclassEntityName(java.lang.String entityName)
Determine whether the given name represents a subclass entity (or this entity itself) of the entity mapped by this persister.

Parameters:
entityName - The entity name to be checked.
Returns:
True if the given entity name represents either the entity mapped by this persister or one of its subclass entities; false otherwise.

getPropertySpaces

java.io.Serializable[] getPropertySpaces()
Returns an array of objects that identify spaces in which properties of this entity are persisted, for instances of this class only.

For most implementations, this returns the complete set of table names to which instances of the mapped entity are persisted (not accounting for superclass entity mappings).

Returns:
The property spaces.

getQuerySpaces

java.io.Serializable[] getQuerySpaces()
Returns an array of objects that identify spaces in which properties of this entity are persisted, for instances of this class and its subclasses.

Much like getPropertySpaces(), except that here we include subclass entity spaces.

Returns:
The query spaces.

hasProxy

boolean hasProxy()
Determine whether this entity supports dynamic proxies.

Returns:
True if the entity has dynamic proxy support; false otherwise.

hasCollections

boolean hasCollections()
Determine whether this entity contains references to persistent collections.

Returns:
True if the entity does contain persistent collections; false otherwise.

hasMutableProperties

boolean hasMutableProperties()
Determine whether any properties of this entity are considered mutable.

Returns:
True if any properties of the entity are mutable; false otherwise (meaning none are).

hasSubselectLoadableCollections

boolean hasSubselectLoadableCollections()
Determine whether this entity contains references to persistent collections which are fetchable by subselect?

Returns:
True if the entity contains collections fetchable by subselect; false otherwise.

hasCascades

boolean hasCascades()
Determine whether this entity has any non-none cascading.

Returns:
True if the entity has any properties with a cscade other than NONE; false otherwise (aka, no cascading).

isMutable

boolean isMutable()
Determine whether instances of this entity are considered mutable.

Returns:
True if the entity is considered mutable; false otherwise.

isInherited

boolean isInherited()
Determine whether the entity is inherited one or more other entities. In other words, is this entity a subclass of other entities.

Returns:
True if other entities extend this entity; false otherwise.

isIdentifierAssignedByInsert

boolean isIdentifierAssignedByInsert()
Are identifiers of this entity assigned known before the insert execution? Or, are they generated (in the database) by the insert execution.

Returns:
True if identifiers for this entity are generated by the insert execution.

getPropertyType

Type getPropertyType(java.lang.String propertyName)
                     throws MappingException
Get the type of a particular property by name.

Parameters:
propertyName - The name of the property for which to retrieve the typpe.
Returns:
The type.
Throws:
MappingException - Typically indicates an unknown property name.

findDirty

int[] findDirty(java.lang.Object[] currentState,
                java.lang.Object[] previousState,
                java.lang.Object owner,
                SessionImplementor session)
Compare the two snapshots to determine if they represent dirty state.

Parameters:
currentState - The current snapshot
previousState - The baseline snapshot
owner - The entity containing the state
session - The originating session
Returns:
The indices of all dirty properties, or null if no properties were dirty.

findModified

int[] findModified(java.lang.Object[] old,
                   java.lang.Object[] current,
                   java.lang.Object object,
                   SessionImplementor session)
Compare the two snapshots to determine if they represent modified state.

Parameters:
old - The baseline snapshot
current - The current snapshot
object - The entity containing the state
session - The originating session
Returns:
The indices of all modified properties, or null if no properties were modified.

hasIdentifierProperty

boolean hasIdentifierProperty()
Determine whether the entity has a particular property holding the identifier value.

Returns:
True if the entity has a specific property holding identifier value.

canExtractIdOutOfEntity

boolean canExtractIdOutOfEntity()
Determine whether detahced instances of this entity carry their own identifier value.

The other option is the deperecated feature where users could supply the id during session calls.

Returns:
True if either (1) hasIdentifierProperty() or (2) the identifier is an embedded composite identifier; false otherwise.

isVersioned

boolean isVersioned()
Determine whether optimistic locking by column is enabled for this entity.

Specified by:
isVersioned in interface OptimisticCacheSource
Returns:
True if optimistic locking by column (i.e., or ) is enabled; false otherwise.

getVersionType

VersionType getVersionType()
If isVersioned(), then what is the type of the property holding the locking value.

Returns:
The type of the version property; or null, if not versioned.

getVersionProperty

int getVersionProperty()
If isVersioned(), then what is the index of the property holding the locking value.

Returns:
The type of the version property; or -66, if not versioned.

hasNaturalIdentifier

boolean hasNaturalIdentifier()
Determine whether this entity defines a natural identifier.

Returns:
True if the entity defines a natural id; false otherwise.

getNaturalIdentifierProperties

int[] getNaturalIdentifierProperties()
If the entity defines a natural id (hasNaturalIdentifier()), which properties make up the natural id.

Returns:
The indices of the properties making of the natural id; or null, if no natural id is defined.

getNaturalIdentifierSnapshot

java.lang.Object[] getNaturalIdentifierSnapshot(java.io.Serializable id,
                                                SessionImplementor session)
Retrieve the current state of the natural-id properties from the database.

Parameters:
id - The identifier of the entity for which to retrieve the naturak-id values.
session - The session from which the request originated.
Returns:
The natural-id snapshot.

getIdentifierGenerator

IdentifierGenerator getIdentifierGenerator()
Determine which identifier generation strategy is used for this entity.

Returns:
The identifier generation strategy.

hasLazyProperties

boolean hasLazyProperties()
Determine whether this entity defines any lazy properties (ala bytecode instrumentation).

Returns:
True if the entity has properties mapped as lazy; false otherwise.

load

java.lang.Object load(java.io.Serializable id,
                      java.lang.Object optionalObject,
                      LockMode lockMode,
                      SessionImplementor session)
                      throws HibernateException
Load an instance of the persistent class.

Throws:
HibernateException

lock

void lock(java.io.Serializable id,
          java.lang.Object version,
          java.lang.Object object,
          LockMode lockMode,
          SessionImplementor session)
          throws HibernateException
Do a version check (optional operation)

Throws:
HibernateException

insert

void insert(java.io.Serializable id,
            java.lang.Object[] fields,
            java.lang.Object object,
            SessionImplementor session)
            throws HibernateException
Persist an instance

Throws:
HibernateException

insert

java.io.Serializable insert(java.lang.Object[] fields,
                            java.lang.Object object,
                            SessionImplementor session)
                            throws HibernateException
Persist an instance, using a natively generated identifier (optional operation)

Throws:
HibernateException

delete

void delete(java.io.Serializable id,
            java.lang.Object version,
            java.lang.Object object,
            SessionImplementor session)
            throws HibernateException
Delete a persistent instance

Throws:
HibernateException

update

void update(java.io.Serializable id,
            java.lang.Object[] fields,
            int[] dirtyFields,
            boolean hasDirtyCollection,
            java.lang.Object[] oldFields,
            java.lang.Object oldVersion,
            java.lang.Object object,
            java.lang.Object rowId,
            SessionImplementor session)
            throws HibernateException
Update a persistent instance

Throws:
HibernateException

getPropertyTypes

Type[] getPropertyTypes()
Get the Hibernate types of the class properties


getPropertyNames

java.lang.String[] getPropertyNames()
Get the names of the class properties - doesn't have to be the names of the actual Java properties (used for XML generation only)


getPropertyInsertability

boolean[] getPropertyInsertability()
Get the "insertability" of the properties of this class (does the property appear in an SQL INSERT)


getPropertyInsertGenerationInclusions

ValueInclusion[] getPropertyInsertGenerationInclusions()
Which of the properties of this class are database generated values on insert?


getPropertyUpdateGenerationInclusions

ValueInclusion[] getPropertyUpdateGenerationInclusions()
Which of the properties of this class are database generated values on update?


getPropertyUpdateability

boolean[] getPropertyUpdateability()
Get the "updateability" of the properties of this class (does the property appear in an SQL UPDATE)


getPropertyCheckability

boolean[] getPropertyCheckability()
Get the "checkability" of the properties of this class (is the property dirty checked, does the cache need to be updated)


getPropertyNullability

boolean[] getPropertyNullability()
Get the nullability of the properties of this class


getPropertyVersionability

boolean[] getPropertyVersionability()
Get the "versionability" of the properties of this class (is the property optimistic-locked)


getPropertyLaziness

boolean[] getPropertyLaziness()

getPropertyCascadeStyles

CascadeStyle[] getPropertyCascadeStyles()
Get the cascade styles of the propertes (optional operation)


getIdentifierType

Type getIdentifierType()
Get the identifier type


getIdentifierPropertyName

java.lang.String getIdentifierPropertyName()
Get the name of the identifier property (or return null) - need not return the name of an actual Java property


isCacheInvalidationRequired

boolean isCacheInvalidationRequired()
Should we always invalidate the cache instead of recaching updated state


isLazyPropertiesCacheable

boolean isLazyPropertiesCacheable()
Should lazy properties of this entity be cached?


hasCache

boolean hasCache()
Does this class have a cache.


getCacheAccessStrategy

EntityRegionAccessStrategy getCacheAccessStrategy()
Get the cache (optional operation)


getCacheEntryStructure

CacheEntryStructure getCacheEntryStructure()
Get the cache structure


getClassMetadata

ClassMetadata getClassMetadata()
Get the user-visible metadata for the class (optional operation)


isBatchLoadable

boolean isBatchLoadable()
Is batch loading enabled?


isSelectBeforeUpdateRequired

boolean isSelectBeforeUpdateRequired()
Is select snapshot before update enabled?


getDatabaseSnapshot

java.lang.Object[] getDatabaseSnapshot(java.io.Serializable id,
                                       SessionImplementor session)
                                       throws HibernateException
Get the current database state of the object, in a "hydrated" form, without resolving identifiers

Returns:
null if there is no row in the database
Throws:
HibernateException

getCurrentVersion

java.lang.Object getCurrentVersion(java.io.Serializable id,
                                   SessionImplementor session)
                                   throws HibernateException
Get the current version of the object, or return null if there is no row for the given identifier. In the case of unversioned data, return any object if the row exists.

Throws:
HibernateException

forceVersionIncrement

java.lang.Object forceVersionIncrement(java.io.Serializable id,
                                       java.lang.Object currentVersion,
                                       SessionImplementor session)
                                       throws HibernateException
Throws:
HibernateException

guessEntityMode

EntityMode guessEntityMode(java.lang.Object object)
Try to discover the entity mode from the entity instance


isInstrumented

boolean isInstrumented(EntityMode entityMode)
Has the class actually been bytecode instrumented?


hasInsertGeneratedProperties

boolean hasInsertGeneratedProperties()
Does this entity define any properties as being database generated on insert?

Returns:
True if this entity contains at least one property defined as generated (including version property, but not identifier).

hasUpdateGeneratedProperties

boolean hasUpdateGeneratedProperties()
Does this entity define any properties as being database generated on update?

Returns:
True if this entity contains at least one property defined as generated (including version property, but not identifier).

isVersionPropertyGenerated

boolean isVersionPropertyGenerated()
Does this entity contain a version property that is defined to be database generated?

Returns:
true if this entity contains a version property and that property has been marked as generated.

afterInitialize

void afterInitialize(java.lang.Object entity,
                     boolean lazyPropertiesAreUnfetched,
                     SessionImplementor session)
Called just after the entities properties have been initialized


afterReassociate

void afterReassociate(java.lang.Object entity,
                      SessionImplementor session)
Called just after the entity has been reassociated with the session


createProxy

java.lang.Object createProxy(java.io.Serializable id,
                             SessionImplementor session)
                             throws HibernateException
Create a new proxy instance

Throws:
HibernateException

isTransient

java.lang.Boolean isTransient(java.lang.Object object,
                              SessionImplementor session)
                              throws HibernateException
Is this a new transient instance?

Throws:
HibernateException

getPropertyValuesToInsert

java.lang.Object[] getPropertyValuesToInsert(java.lang.Object object,
                                             java.util.Map mergeMap,
                                             SessionImplementor session)
                                             throws HibernateException
Return the values of the insertable properties of the object (including backrefs)

Throws:
HibernateException

processInsertGeneratedProperties

void processInsertGeneratedProperties(java.io.Serializable id,
                                      java.lang.Object entity,
                                      java.lang.Object[] state,
                                      SessionImplementor session)
Perform a select to retrieve the values of any generated properties back from the database, injecting these generated values into the given entity as well as writing this state to the PersistenceContext.

Note, that because we update the PersistenceContext here, callers need to take care that they have already written the initial snapshot to the PersistenceContext before calling this method.

Parameters:
id - The entity's id value.
entity - The entity for which to get the state.
state -
session - The session

processUpdateGeneratedProperties

void processUpdateGeneratedProperties(java.io.Serializable id,
                                      java.lang.Object entity,
                                      java.lang.Object[] state,
                                      SessionImplementor session)
Perform a select to retrieve the values of any generated properties back from the database, injecting these generated values into the given entity as well as writing this state to the PersistenceContext.

Note, that because we update the PersistenceContext here, callers need to take care that they have already written the initial snapshot to the PersistenceContext before calling this method.

Parameters:
id - The entity's id value.
entity - The entity for which to get the state.
state -
session - The session

getMappedClass

java.lang.Class getMappedClass(EntityMode entityMode)
The persistent class, or null


implementsLifecycle

boolean implementsLifecycle(EntityMode entityMode)
Does the class implement the Lifecycle interface.


implementsValidatable

boolean implementsValidatable(EntityMode entityMode)
Does the class implement the Validatable interface.


getConcreteProxyClass

java.lang.Class getConcreteProxyClass(EntityMode entityMode)
Get the proxy interface that instances of this concrete class will be cast to (optional operation).


setPropertyValues

void setPropertyValues(java.lang.Object object,
                       java.lang.Object[] values,
                       EntityMode entityMode)
                       throws HibernateException
Set the given values to the mapped properties of the given object

Throws:
HibernateException

setPropertyValue

void setPropertyValue(java.lang.Object object,
                      int i,
                      java.lang.Object value,
                      EntityMode entityMode)
                      throws HibernateException
Set the value of a particular property

Throws:
HibernateException

getPropertyValues

java.lang.Object[] getPropertyValues(java.lang.Object object,
                                     EntityMode entityMode)
                                     throws HibernateException
Return the (loaded) values of the mapped properties of the object (not including backrefs)

Throws:
HibernateException

getPropertyValue

java.lang.Object getPropertyValue(java.lang.Object object,
                                  int i,
                                  EntityMode entityMode)
                                  throws HibernateException
Get the value of a particular property

Throws:
HibernateException

getPropertyValue

java.lang.Object getPropertyValue(java.lang.Object object,
                                  java.lang.String propertyName,
                                  EntityMode entityMode)
                                  throws HibernateException
Get the value of a particular property

Throws:
HibernateException

getIdentifier

java.io.Serializable getIdentifier(java.lang.Object object,
                                   EntityMode entityMode)
                                   throws HibernateException
Get the identifier of an instance (throw an exception if no identifier property)

Throws:
HibernateException

setIdentifier

void setIdentifier(java.lang.Object object,
                   java.io.Serializable id,
                   EntityMode entityMode)
                   throws HibernateException
Set the identifier of an instance (or do nothing if no identifier property)

Throws:
HibernateException

getVersion

java.lang.Object getVersion(java.lang.Object object,
                            EntityMode entityMode)
                            throws HibernateException
Get the version number (or timestamp) from the object's version property (or return null if not versioned)

Throws:
HibernateException

instantiate

java.lang.Object instantiate(java.io.Serializable id,
                             EntityMode entityMode)
                             throws HibernateException
Create a class instance initialized with the given identifier

Throws:
HibernateException

isInstance

boolean isInstance(java.lang.Object object,
                   EntityMode entityMode)
Is the given object an instance of this entity?


hasUninitializedLazyProperties

boolean hasUninitializedLazyProperties(java.lang.Object object,
                                       EntityMode entityMode)
Does the given instance have any uninitialized lazy properties?


resetIdentifier

void resetIdentifier(java.lang.Object entity,
                     java.io.Serializable currentId,
                     java.lang.Object currentVersion,
                     EntityMode entityMode)
Set the identifier and version of the given instance back to its "unsaved" value, returning the id

Parameters:
currentId - TODO
currentVersion - TODO

getSubclassEntityPersister

EntityPersister getSubclassEntityPersister(java.lang.Object instance,
                                           SessionFactoryImplementor factory,
                                           EntityMode entityMode)
Get the persister for an instance of this class or a subclass



Copyright © 2008 Hibernate.org. All Rights Reserved.