Change org.hibernate.impl.SessionImpl.instantiate(EntityPersister , Serializable) to call
persister.setIdentifier(...) if interceptor returns a non-null value
--------------------------------------------------------------------------------------------------------------------------------------------------------------
Key: HHH-6309
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-6309
Project: Hibernate Core
Issue Type: Improvement
Components: core
Affects Versions: 3.6.5
Reporter: Chris Webb
org.hibernate.Interceptor.instantiate(String entityName, EntityMode entityMode,
Serializable id) does not have any way of leveraging the EntityPersister to set the
identifier so this should be done in SessionImpl.instantiate if the interceptor returns a
non-null value by calling persister.setIdentifier(result, id, this).
Here is the completed change:
{code:title=org.hibernate.impl.SessionImpl.java|borderStyle=solid}
public Object instantiate(EntityPersister persister, Serializable id) throws
HibernateException {
errorIfClosed();
checkTransactionSynchStatus();
Object result = interceptor.instantiate( persister.getEntityName(), entityMode, id );
if ( result == null ) {
result = persister.instantiate( id, this );
}
else {
// Set the id for the object instantiated by the interceptor.
persister.setIdentifier(result, id, this);
}
return result;
}
{code}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://opensource.atlassian.com/projects/hibernate/secure/Administrators....
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira