Skip to content

Commit 46fb816

Browse files
committed
Minor refactoring in DefaultReactiveMergeEventListener
Extract copyEntity method from the existing code
1 parent a0117ad commit 46fb816

File tree

1 file changed

+15
-15
lines changed

1 file changed

+15
-15
lines changed

hibernate-reactive-core/src/main/java/org/hibernate/reactive/event/impl/DefaultReactiveMergeEventListener.java

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -233,31 +233,17 @@ protected CompletionStage<Void> entityIsPersistent(MergeEvent event, MergeContex
233233
}
234234

235235
protected CompletionStage<Void> entityIsTransient(MergeEvent event, MergeContext copyCache) {
236-
237236
LOG.trace( "Merging transient instance" );
238237

239238
final Object entity = event.getEntity();
240239
final EventSource session = event.getSession();
241-
242240
final String entityName = event.getEntityName();
243241
final EntityPersister persister = session.getEntityPersister( entityName, entity );
244-
245242
final Object id = persister.hasIdentifierProperty()
246243
? persister.getIdentifier( entity, session )
247244
: null;
248245

249-
final Object copy;
250-
final Object existingCopy = copyCache.get( entity );
251-
if ( existingCopy != null ) {
252-
persister.setIdentifier( copyCache.get( entity ), id, session );
253-
copy = existingCopy;
254-
}
255-
else {
256-
copy = session.instantiate( persister, id );
257-
258-
//before cascade!
259-
copyCache.put( entity, copy, true );
260-
}
246+
final Object copy = copyEntity( copyCache, entity, session, persister, id );
261247

262248
// cascade first, so that all unsaved objects get their
263249
// copy created before we actually copy
@@ -286,6 +272,20 @@ protected CompletionStage<Void> entityIsTransient(MergeEvent event, MergeContext
286272
});
287273
}
288274

275+
private static Object copyEntity(MergeContext copyCache, Object entity, EventSource session, EntityPersister persister, Object id) {
276+
final Object existingCopy = copyCache.get( entity );
277+
if ( existingCopy != null ) {
278+
persister.setIdentifier( copyCache.get( entity ), id, session );
279+
return existingCopy;
280+
}
281+
else {
282+
final Object copy = session.instantiate( persister, id );
283+
//before cascade!
284+
copyCache.put( entity, copy, true );
285+
return copy;
286+
}
287+
}
288+
289289
private static class CollectionVisitor extends WrapVisitor {
290290
CollectionVisitor(Object entity, Object id, EventSource session) {
291291
super( entity, id, session );

0 commit comments

Comments
 (0)