Author: gbadner
Date: 2010-02-24 15:21:08 -0500 (Wed, 24 Feb 2010)
New Revision: 18872
Modified:
core/trunk/core/src/main/java/org/hibernate/event/def/DefaultSaveOrUpdateEventListener.java
Log:
HHH-4948 : Session.flush() does not always cascade save or update to read-only or
immutable entities
Modified:
core/trunk/core/src/main/java/org/hibernate/event/def/DefaultSaveOrUpdateEventListener.java
===================================================================
---
core/trunk/core/src/main/java/org/hibernate/event/def/DefaultSaveOrUpdateEventListener.java 2010-02-24
19:11:53 UTC (rev 18871)
+++
core/trunk/core/src/main/java/org/hibernate/event/def/DefaultSaveOrUpdateEventListener.java 2010-02-24
20:21:08 UTC (rev 18872)
@@ -285,11 +285,9 @@
Object entity,
EntityPersister persister) throws HibernateException {
- if ( !persister.isMutable() ) {
- log.trace( "immutable instance passed to doUpdate(), locking" );
- reassociate( event, entity, event.getRequestedId(), persister );
- }
- else {
+ if ( !persister.isMutable() ) {
+ log.trace( "immutable instance passed to performUpdate()" );
+ }
if ( log.isTraceEnabled() ) {
log.trace(
@@ -329,7 +327,7 @@
source.getPersistenceContext().addEntity(
entity,
- Status.MANAGED,
+ ( persister.isMutable() ? Status.MANAGED : Status.READ_ONLY ),
null, //cachedState,
key,
persister.getVersion( entity, source.getEntityMode() ),
@@ -350,8 +348,6 @@
}
cascadeOnUpdate( event, persister, entity );
-
- }
}
protected boolean invokeUpdateLifecycle(Object entity, EntityPersister persister,
EventSource source) {
Show replies by date