afterInitialize
public void afterInitialize(Object entity,
boolean lazyPropertiesAreUnfetched,
SessionImplementor session)
Called just after the entities properties have been initialized
afterReassociate
public void afterReassociate(Object entity,
SessionImplementor session)
Called just after the entity has been reassociated with the session
canExtractIdOutOfEntity
public 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.
- True if either (1)
hasIdentifierProperty()
or
(2) the identifier is an embedded composite identifier; false otherwise.
findDirty
public int[] findDirty(Object[] currentState,
Object[] previousState,
Object owner,
SessionImplementor session)
Compare the two snapshots to determine if they represent dirty state.
currentState
- The current snapshotpreviousState
- The baseline snapshotowner
- The entity containing the statesession
- The originating session
- The indices of all dirty properties, or null if no properties
were dirty.
findModified
public int[] findModified(Object[] old,
Object[] current,
Object object,
SessionImplementor session)
Compare the two snapshots to determine if they represent modified state.
old
- The baseline snapshotcurrent
- The current snapshotobject
- The entity containing the statesession
- The originating session
- The indices of all modified properties, or null if no properties
were modified.
getCacheEntryStructure
public CacheEntryStructure getCacheEntryStructure()
Get the cache structure
getClassMetadata
public ClassMetadata getClassMetadata()
Get the user-visible metadata for the class (optional operation)
getConcreteProxyClass
public Class getConcreteProxyClass(EntityMode entityMode)
Get the proxy interface that instances of this concrete class will be
cast to (optional operation).
getCurrentVersion
public Object getCurrentVersion(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.
getDatabaseSnapshot
public Object[] getDatabaseSnapshot(Serializable id,
SessionImplementor session)
throws HibernateException
Get the current database state of the object, in a "hydrated" form, without
resolving identifiers
- null if there is no row in the database
getEntityMetamodel
public EntityMetamodel getEntityMetamodel()
Retrieve the underlying entity metamodel instance...
getEntityName
public String getEntityName()
The entity name which this persister maps.
- The name of the entity which this persister maps.
getFactory
public SessionFactoryImplementor getFactory()
Return the SessionFactory to which this persister "belongs".
- The owning SessionFactory.
getIdentifier
public Serializable getIdentifier(Object object,
EntityMode entityMode)
throws HibernateException
Get the identifier of an instance (throw an exception if no identifier property)
getIdentifierGenerator
public IdentifierGenerator getIdentifierGenerator()
Determine which identifier generation strategy is used for this entity.
- The identifier generation strategy.
getIdentifierPropertyName
public String getIdentifierPropertyName()
Get the name of the identifier property (or return null) - need not return the
name of an actual Java property
getIdentifierType
public Type getIdentifierType()
Get the identifier type
getMappedClass
public Class getMappedClass(EntityMode entityMode)
The persistent class, or null
getNaturalIdentifierProperties
public int[] getNaturalIdentifierProperties()
- The indices of the properties making of the natural id; or
null, if no natural id is defined.
getNaturalIdentifierSnapshot
public Object[] getNaturalIdentifierSnapshot(Serializable id,
SessionImplementor session)
Retrieve the current state of the natural-id properties from the database.
id
- The identifier of the entity for which to retrieve the naturak-id values.session
- The session from which the request originated.
getPropertyCascadeStyles
public CascadeStyle[] getPropertyCascadeStyles()
Get the cascade styles of the propertes (optional operation)
getPropertyCheckability
public boolean[] getPropertyCheckability()
Get the "checkability" of the properties of this class
(is the property dirty checked, does the cache need
to be updated)
getPropertyInsertGenerationInclusions
public ValueInclusion[] getPropertyInsertGenerationInclusions()
Which of the properties of this class are database generated values on insert?
getPropertyInsertability
public boolean[] getPropertyInsertability()
Get the "insertability" of the properties of this class
(does the property appear in an SQL INSERT)
getPropertyLaziness
public boolean[] getPropertyLaziness()
getPropertyNames
public 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)
getPropertyNullability
public boolean[] getPropertyNullability()
Get the nullability of the properties of this class
getPropertySpaces
public 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).
getPropertyType
public Type getPropertyType(String propertyName)
throws MappingException
Get the type of a particular property by name.
propertyName
- The name of the property for which to retrieve
the typpe.
getPropertyTypes
public Type[] getPropertyTypes()
Get the Hibernate types of the class properties
getPropertyUpdateGenerationInclusions
public ValueInclusion[] getPropertyUpdateGenerationInclusions()
Which of the properties of this class are database generated values on update?
getPropertyUpdateability
public boolean[] getPropertyUpdateability()
Get the "updateability" of the properties of this class
(does the property appear in an SQL UPDATE)
getPropertyValue
public Object getPropertyValue(Object object,
String propertyName,
EntityMode entityMode)
throws HibernateException
Get the value of a particular property
getPropertyValue
public Object getPropertyValue(Object object,
int i,
EntityMode entityMode)
throws HibernateException
Get the value of a particular property
getPropertyValues
public Object[] getPropertyValues(Object object,
EntityMode entityMode)
throws HibernateException
Return the (loaded) values of the mapped properties of the object (not including backrefs)
getPropertyValuesToInsert
public Object[] getPropertyValuesToInsert(Object object,
Map mergeMap,
SessionImplementor session)
throws HibernateException
Return the values of the insertable properties of the object (including backrefs)
getPropertyVersionability
public boolean[] getPropertyVersionability()
Get the "versionability" of the properties of this class
(is the property optimistic-locked)
getQuerySpaces
public 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.
getRootEntityName
public 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.
getVersion
public Object getVersion(Object object,
EntityMode entityMode)
throws HibernateException
Get the version number (or timestamp) from the object's version property (or return null if not versioned)
getVersionProperty
public int getVersionProperty()
If
isVersioned()
, then what is the index of the property
holding the locking value.
- The type of the version property; or -66, if not versioned.
getVersionType
public VersionType getVersionType()
If
isVersioned()
, then what is the type of the property
holding the locking value.
- The type of the version property; or null, if not versioned.
guessEntityMode
public EntityMode guessEntityMode(Object object)
Try to discover the entity mode from the entity instance
hasCache
public boolean hasCache()
Does this class have a cache.
hasCascades
public boolean hasCascades()
Determine whether this entity has any non-none cascading.
- True if the entity has any properties with a cscade other than NONE;
false otherwise (aka, no cascading).
hasCollections
public boolean hasCollections()
Determine whether this entity contains references to persistent collections.
- True if the entity does contain persistent collections; false otherwise.
hasIdentifierProperty
public boolean hasIdentifierProperty()
Determine whether the entity has a particular property holding
the identifier value.
- True if the entity has a specific property holding identifier value.
hasInsertGeneratedProperties
public boolean hasInsertGeneratedProperties()
Does this entity define any properties as being database generated on insert?
- True if this entity contains at least one property defined
as generated (including version property, but not identifier).
hasLazyProperties
public boolean hasLazyProperties()
Determine whether this entity defines any lazy properties (ala
bytecode instrumentation).
- True if the entity has properties mapped as lazy; false otherwise.
hasMutableProperties
public boolean hasMutableProperties()
Determine whether any properties of this entity are considered mutable.
- True if any properties of the entity are mutable; false otherwise (meaning none are).
hasNaturalIdentifier
public boolean hasNaturalIdentifier()
Determine whether this entity defines a natural identifier.
- True if the entity defines a natural id; false otherwise.
hasProxy
public boolean hasProxy()
Determine whether this entity supports dynamic proxies.
- True if the entity has dynamic proxy support; false otherwise.
hasSubselectLoadableCollections
public boolean hasSubselectLoadableCollections()
Determine whether this entity contains references to persistent collections
which are fetchable by subselect?
- True if the entity contains collections fetchable by subselect; false otherwise.
hasUninitializedLazyProperties
public boolean hasUninitializedLazyProperties(Object object,
EntityMode entityMode)
Does the given instance have any uninitialized lazy properties?
hasUpdateGeneratedProperties
public boolean hasUpdateGeneratedProperties()
Does this entity define any properties as being database generated on update?
- True if this entity contains at least one property defined
as generated (including version property, but not identifier).
implementsLifecycle
public boolean implementsLifecycle(EntityMode entityMode)
Does the class implement the Lifecycle interface.
implementsValidatable
public boolean implementsValidatable(EntityMode entityMode)
Does the class implement the Validatable interface.
insert
public Serializable insert(Object[] fields,
Object object,
SessionImplementor session)
throws HibernateException
Persist an instance, using a natively generated identifier (optional operation)
instantiate
public Object instantiate(Serializable id,
EntityMode entityMode)
throws HibernateException
Create a class instance initialized with the given identifier
isBatchLoadable
public boolean isBatchLoadable()
Is batch loading enabled?
isCacheInvalidationRequired
public boolean isCacheInvalidationRequired()
Should we always invalidate the cache instead of
recaching updated state
isIdentifierAssignedByInsert
public boolean isIdentifierAssignedByInsert()
Are identifiers of this entity assigned known before the insert execution?
Or, are they generated (in the database) by the insert execution.
- True if identifiers for this entity are generated by the insert
execution.
isInherited
public boolean isInherited()
Determine whether the entity is inherited one or more other entities.
In other words, is this entity a subclass of other entities.
- True if other entities extend this entity; false otherwise.
isInstance
public boolean isInstance(Object object,
EntityMode entityMode)
Is the given object an instance of this entity?
isInstrumented
public boolean isInstrumented(EntityMode entityMode)
Has the class actually been bytecode instrumented?
isLazyPropertiesCacheable
public boolean isLazyPropertiesCacheable()
Should lazy properties of this entity be cached?
isMutable
public boolean isMutable()
Determine whether instances of this entity are considered mutable.
- True if the entity is considered mutable; false otherwise.
isSelectBeforeUpdateRequired
public boolean isSelectBeforeUpdateRequired()
Is select snapshot before update enabled?
isSubclassEntityName
public boolean isSubclassEntityName(String entityName)
Determine whether the given name represents a subclass entity
(or this entity itself) of the entity mapped by this persister.
entityName
- The entity name to be checked.
- True if the given entity name represents either the entity
mapped by this persister or one of its subclass entities; false
otherwise.
isVersionPropertyGenerated
public boolean isVersionPropertyGenerated()
Does this entity contain a version property that is defined
to be database generated?
- true if this entity contains a version property and that
property has been marked as generated.
isVersioned
public boolean isVersioned()
Determine whether optimistic locking by column is enabled for this
entity.
- isVersioned in interface OptimisticCacheSource
- True if optimistic locking by column (i.e., or
) is enabled; false otherwise.
postInstantiate
public void postInstantiate()
throws MappingException
Finish the initialization of this object.
Called only once per
SessionFactory
lifecycle,
after all entity persisters have been instantiated.
processInsertGeneratedProperties
public void processInsertGeneratedProperties(Serializable id,
Object entity,
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.
id
- The entity's id value.entity
- The entity for which to get the state.state
- session
- The session
processUpdateGeneratedProperties
public void processUpdateGeneratedProperties(Serializable id,
Object entity,
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.
id
- The entity's id value.entity
- The entity for which to get the state.state
- session
- The session
resetIdentifier
public void resetIdentifier(Object entity,
Serializable currentId,
Object currentVersion,
EntityMode entityMode)
Set the identifier and version of the given instance back
to its "unsaved" value, returning the id
currentId
- TODOcurrentVersion
- TODO
setIdentifier
public void setIdentifier(Object object,
Serializable id,
EntityMode entityMode)
throws HibernateException
Set the identifier of an instance (or do nothing if no identifier property)
setPropertyValue
public void setPropertyValue(Object object,
int i,
Object value,
EntityMode entityMode)
throws HibernateException
Set the value of a particular property
setPropertyValues
public void setPropertyValues(Object object,
Object[] values,
EntityMode entityMode)
throws HibernateException
Set the given values to the mapped properties of the given object
update
public void update(Serializable id,
Object[] fields,
int[] dirtyFields,
boolean hasDirtyCollection,
Object[] oldFields,
Object oldVersion,
Object object,
Object rowId,
SessionImplementor session)
throws HibernateException
Update a persistent instance