|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Concrete EntityPersisters implement mapping and persistence logic for a particular persistent class.
Implementors must be threadsafe (preferrably immutable) and must provide a constructor
of type
(org.hibernate.map.PersistentClass, org.hibernate.impl.SessionFactoryImplementor).
Field Summary | |
static String |
ENTITY_ID
The property name of the "special" identifier property in HQL |
Method Summary | |
void |
afterInitialize(Object entity,
boolean lazyPropertiesAreUnfetched,
SessionImplementor session)
Called just after the entities properties have been initialized |
void |
afterReassociate(Object entity,
SessionImplementor session)
Called just after the entity has been reassociated with the session |
Object |
createProxy(Serializable id,
SessionImplementor session)
Create a new proxy instance |
void |
delete(Serializable id,
Object version,
Object object,
SessionImplementor session)
Delete a persistent instance |
int[] |
findDirty(Object[] x,
Object[] y,
Object owner,
SessionImplementor session)
Compare two snapshots of the state of an instance to determine if the persistent state was modified |
int[] |
findModified(Object[] old,
Object[] current,
Object object,
SessionImplementor session)
Compare the state of an instance to the current database state |
CacheConcurrencyStrategy |
getCache()
Get the cache (optional operation) |
CacheEntryStructure |
getCacheEntryStructure()
Get the cache structure |
ClassMetadata |
getClassMetadata()
Get the user-visible metadata for the class (optional operation) |
Class |
getConcreteProxyClass(EntityMode entityMode)
Get the proxy interface that instances of this concrete class will be cast to (optional operation). |
Object |
getCurrentVersion(Serializable id,
SessionImplementor session)
Get the current version of the object, or return null if there is no row for the given identifier. |
Object[] |
getDatabaseSnapshot(Serializable id,
SessionImplementor session)
Get the current database state of the object, in a "hydrated" form, without resolving identifiers |
String |
getEntityName()
The classname of the persistent class (used only for messages) |
SessionFactoryImplementor |
getFactory()
Return the SessionFactory to which this persister "belongs". |
Serializable |
getIdentifier(Object object,
EntityMode entityMode)
Get the identifier of an instance (throw an exception if no identifier property) |
IdentifierGenerator |
getIdentifierGenerator()
Return the IdentifierGenerator for the class |
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 |
Class |
getMappedClass(EntityMode entityMode)
The persistent class, or null |
int[] |
getNaturalIdentifierProperties()
Which properties hold the natural id? |
Object[] |
getNaturalIdentifierSnapshot(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) |
boolean[] |
getPropertyInsertGeneration()
Which of the properties of this class are database generated values on insert? |
boolean[] |
getPropertyLaziness()
|
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 |
Serializable[] |
getPropertySpaces()
Returns an array of objects that identify spaces in which properties of this class are persisted, for instances of this class only. |
Type |
getPropertyType(String propertyName)
Get the type of a particular property |
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) |
boolean[] |
getPropertyUpdateGeneration()
Which of the properties of this class are database generated values on update? |
Object |
getPropertyValue(Object object,
int i,
EntityMode entityMode)
Get the value of a particular property |
Object |
getPropertyValue(Object object,
String propertyName,
EntityMode entityMode)
Get the value of a particular property |
Object[] |
getPropertyValues(Object object,
EntityMode entityMode)
Return the (loaded) values of the mapped properties of the object (not including backrefs) |
Object[] |
getPropertyValuesToInsert(Object object,
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) |
Serializable[] |
getQuerySpaces()
Returns an array of objects that identify spaces in which properties of this class are persisted, for instances of this class and its subclasses. |
String |
getRootEntityName()
Returns an object that identifies the space in which identifiers of this class hierarchy are unique. |
EntityPersister |
getSubclassEntityPersister(Object instance,
SessionFactoryImplementor factory,
EntityMode entityMode)
Get the persister for an instance of this class or a subclass |
Object |
getVersion(Object object,
EntityMode entityMode)
Get the version number (or timestamp) from the object's version property (or return null if not versioned) |
int |
getVersionProperty()
Which property holds the version number (optional operation). |
VersionType |
getVersionType()
Get the type of versioning (optional operation) |
EntityMode |
guessEntityMode(Object object)
Try to discover the entity mode from the entity instance |
boolean |
hasCache()
Does this class have a cache. |
boolean |
hasCascades()
Does this class declare any cascading save/update/deletes. |
boolean |
hasCollections()
Do instances of this class contain collections. |
boolean |
hasIdentifierProperty()
Does the class have a property holding the identifier value? |
boolean |
hasIdentifierPropertyOrEmbeddedCompositeIdentifier()
Do detached instances of this class carry their own identifier value? |
boolean |
hasInsertGeneratedProperties()
Does this entity define any properties as being database generated on insert? |
boolean |
hasLazyProperties()
Does this entity define some lazy attributes? |
boolean |
hasMutableProperties()
Does this entity declare any properties of mutable type? |
boolean |
hasNaturalIdentifier()
Does this entity declare a natural id? |
boolean |
hasProxy()
Does this class support dynamic proxies. |
boolean |
hasSubselectLoadableCollections()
Does this entity own any collections which are fetchable by subselect? |
boolean |
hasUninitializedLazyProperties(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. |
Serializable |
insert(Object[] fields,
Object object,
SessionImplementor session)
Persist an instance, using a natively generated identifier (optional operation) |
void |
insert(Serializable id,
Object[] fields,
Object object,
SessionImplementor session)
Persist an instance |
Object |
instantiate(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()
Is the identifier assigned before the insert by an IDGenerator. |
boolean |
isInherited()
Is this class mapped as a subclass of another class? |
boolean |
isInstance(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()
Are instances of this class mutable. |
boolean |
isSelectBeforeUpdateRequired()
Is select snapshot before update enabled? |
boolean |
isSubclassEntityName(String entityName)
Is the given entity name the name of a subclass, or this class? |
Boolean |
isTransient(Object object,
SessionImplementor session)
Is this a new transient instance? |
boolean |
isVersioned()
Are instances of this class versioned by a timestamp or version number column. |
boolean |
isVersionPropertyGenerated()
Does this entity contain a version property that is defined to be database generated? |
Object |
load(Serializable id,
Object optionalObject,
LockMode lockMode,
SessionImplementor session)
Load an instance of the persistent class. |
void |
lock(Serializable id,
Object version,
Object object,
LockMode lockMode,
SessionImplementor session)
Do a version check (optional operation) |
void |
postInstantiate()
Finish the initialization of this object, once all ClassPersisters have been instantiated. |
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 . |
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 . |
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 |
void |
setIdentifier(Object object,
Serializable id,
EntityMode entityMode)
Set the identifier of an instance (or do nothing if no identifier property) |
void |
setPropertyValue(Object object,
int i,
Object value,
EntityMode entityMode)
Set the value of a particular property |
void |
setPropertyValues(Object object,
Object[] values,
EntityMode entityMode)
Set the given values to the mapped properties of the given object |
void |
update(Serializable id,
Object[] fields,
int[] dirtyFields,
boolean hasDirtyCollection,
Object[] oldFields,
Object oldVersion,
Object object,
Object rowId,
SessionImplementor session)
Update a persistent instance |
Field Detail |
public static final String ENTITY_ID
Method Detail |
public void postInstantiate() throws MappingException
MappingException
public SessionFactoryImplementor getFactory()
public String getRootEntityName()
public String getEntityName()
public boolean isSubclassEntityName(String entityName)
public Serializable[] getPropertySpaces()
public Serializable[] getQuerySpaces()
public boolean hasProxy()
public boolean hasCollections()
public boolean hasMutableProperties()
public boolean hasSubselectLoadableCollections()
public boolean hasCascades()
public boolean isMutable()
public boolean isInherited()
public boolean isIdentifierAssignedByInsert()
public Type getPropertyType(String propertyName) throws MappingException
MappingException
public int[] findDirty(Object[] x, Object[] y, Object owner, SessionImplementor session) throws HibernateException
HibernateException
public int[] findModified(Object[] old, Object[] current, Object object, SessionImplementor session) throws HibernateException
HibernateException
public boolean hasIdentifierProperty()
public boolean hasIdentifierPropertyOrEmbeddedCompositeIdentifier()
public boolean isVersioned()
public VersionType getVersionType()
public int getVersionProperty()
public boolean hasNaturalIdentifier()
public int[] getNaturalIdentifierProperties()
public Object[] getNaturalIdentifierSnapshot(Serializable id, SessionImplementor session) throws HibernateException
id
- The identifier of the entity for which to retrieve the naturak-id values.session
- The session from which the request originated.
HibernateException
public IdentifierGenerator getIdentifierGenerator() throws HibernateException
HibernateException
public boolean hasLazyProperties()
public Object load(Serializable id, Object optionalObject, LockMode lockMode, SessionImplementor session) throws HibernateException
HibernateException
public void lock(Serializable id, Object version, Object object, LockMode lockMode, SessionImplementor session) throws HibernateException
HibernateException
public void insert(Serializable id, Object[] fields, Object object, SessionImplementor session) throws HibernateException
HibernateException
public Serializable insert(Object[] fields, Object object, SessionImplementor session) throws HibernateException
HibernateException
public void delete(Serializable id, Object version, Object object, SessionImplementor session) throws HibernateException
HibernateException
public void update(Serializable id, Object[] fields, int[] dirtyFields, boolean hasDirtyCollection, Object[] oldFields, Object oldVersion, Object object, Object rowId, SessionImplementor session) throws HibernateException
HibernateException
public Type[] getPropertyTypes()
public String[] getPropertyNames()
public boolean[] getPropertyInsertability()
public boolean[] getPropertyInsertGeneration()
public boolean[] getPropertyUpdateGeneration()
public boolean[] getPropertyUpdateability()
public boolean[] getPropertyCheckability()
public boolean[] getPropertyNullability()
public boolean[] getPropertyVersionability()
public boolean[] getPropertyLaziness()
public CascadeStyle[] getPropertyCascadeStyles()
public Type getIdentifierType()
public String getIdentifierPropertyName()
public boolean isCacheInvalidationRequired()
public boolean isLazyPropertiesCacheable()
public boolean hasCache()
public CacheConcurrencyStrategy getCache()
public CacheEntryStructure getCacheEntryStructure()
public ClassMetadata getClassMetadata()
public boolean isBatchLoadable()
public boolean isSelectBeforeUpdateRequired()
public Object[] getDatabaseSnapshot(Serializable id, SessionImplementor session) throws HibernateException
HibernateException
public Object getCurrentVersion(Serializable id, SessionImplementor session) throws HibernateException
HibernateException
public EntityMode guessEntityMode(Object object)
public boolean isInstrumented(EntityMode entityMode)
public boolean hasInsertGeneratedProperties()
public boolean hasUpdateGeneratedProperties()
public boolean isVersionPropertyGenerated()
public void afterInitialize(Object entity, boolean lazyPropertiesAreUnfetched, SessionImplementor session)
public void afterReassociate(Object entity, SessionImplementor session)
public Object createProxy(Serializable id, SessionImplementor session) throws HibernateException
HibernateException
public Boolean isTransient(Object object, SessionImplementor session) throws HibernateException
HibernateException
public Object[] getPropertyValuesToInsert(Object object, Map mergeMap, SessionImplementor session) throws HibernateException
HibernateException
public void processInsertGeneratedProperties(Serializable id, Object entity, Object[] state, SessionImplementor session)
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 sessionpublic void processUpdateGeneratedProperties(Serializable id, Object entity, Object[] state, SessionImplementor session)
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 sessionpublic Class getMappedClass(EntityMode entityMode)
public boolean implementsLifecycle(EntityMode entityMode)
public boolean implementsValidatable(EntityMode entityMode)
public Class getConcreteProxyClass(EntityMode entityMode)
public void setPropertyValues(Object object, Object[] values, EntityMode entityMode) throws HibernateException
HibernateException
public void setPropertyValue(Object object, int i, Object value, EntityMode entityMode) throws HibernateException
HibernateException
public Object[] getPropertyValues(Object object, EntityMode entityMode) throws HibernateException
HibernateException
public Object getPropertyValue(Object object, int i, EntityMode entityMode) throws HibernateException
HibernateException
public Object getPropertyValue(Object object, String propertyName, EntityMode entityMode) throws HibernateException
HibernateException
public Serializable getIdentifier(Object object, EntityMode entityMode) throws HibernateException
HibernateException
public void setIdentifier(Object object, Serializable id, EntityMode entityMode) throws HibernateException
HibernateException
public Object getVersion(Object object, EntityMode entityMode) throws HibernateException
HibernateException
public Object instantiate(Serializable id, EntityMode entityMode) throws HibernateException
HibernateException
public boolean isInstance(Object object, EntityMode entityMode)
public boolean hasUninitializedLazyProperties(Object object, EntityMode entityMode)
public void resetIdentifier(Object entity, Serializable currentId, Object currentVersion, EntityMode entityMode)
currentId
- TODOcurrentVersion
- TODOpublic EntityPersister getSubclassEntityPersister(Object instance, SessionFactoryImplementor factory, EntityMode entityMode)
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |