private Object fireMerge(MergeEvent event) { try { checkTransactionSynchStatus(); checkNoUnresolvedActionsBeforeOperation(); for ( MergeEventListener listener : listeners( EventType.MERGE ) ) { listener.onMerge( event ); } checkNoUnresolvedActionsAfterOperation(); } catch ( ObjectDeletedException sse ) { throw exceptionConverter.convert( new IllegalArgumentException( sse ) ); } catch ( MappingException e ) { throw exceptionConverter.convert( new IllegalArgumentException( e.getMessage(), e ) ); } catch ( RuntimeException e ) { //including HibernateException throw exceptionConverter.convert( e ); } return event.getResult(); }
private static void replaceBackReferenceToResult(MergeEvent event, AssociatedEndpoint backEndpoint) { if (backEndpoint.isDisabled() || !backEndpoint.isLoaded()) { return; } Reference<?> reference = (Reference<?>)backEndpoint; if (reference.get(true) == event.getResult()) { return; } Method hibernateSetMethod; if (backEndpoint instanceof EntityKeyedReference<?, ?>) { hibernateSetMethod = ENTITY_KEYED_REFERENCE_HIBERNATE_SET; } else if (backEndpoint instanceof EntityIndexedReference<?>) { hibernateSetMethod = ENTITY_INDEXED_REFERENCE_HIBERNATE_SET; } else { hibernateSetMethod = ENTITY_REFERENCE_HIBERNATE_SET; } try { hibernateSetMethod.invoke(backEndpoint, event.getResult()); } catch (IllegalAccessException ex) { throw new AssertionError("Internal bug", ex); } catch (InvocationTargetException ex) { UncheckedException.rethrow(ex.getTargetException()); } }
private Object fireMerge(MergeEvent event) { errorIfClosed(); checkTransactionSynchStatus(); checkNoUnresolvedActionsBeforeOperation(); for ( MergeEventListener listener : listeners( EventType.MERGE ) ) { listener.onMerge( event ); } checkNoUnresolvedActionsAfterOperation(); return event.getResult(); }
private Object fireMerge(MergeEvent event) { errorIfClosed(); checkTransactionSynchStatus(); checkNoUnresolvedActionsBeforeOperation(); for ( MergeEventListener listener : listeners( EventType.MERGE ) ) { listener.onMerge( event ); } checkNoUnresolvedActionsAfterOperation(); return event.getResult(); }
private Object fireMerge(MergeEvent event) { try { checkTransactionSynchStatus(); checkNoUnresolvedActionsBeforeOperation(); for ( MergeEventListener listener : listeners( EventType.MERGE ) ) { listener.onMerge( event ); } checkNoUnresolvedActionsAfterOperation(); } catch ( ObjectDeletedException sse ) { throw exceptionConverter.convert( new IllegalArgumentException( sse ) ); } catch ( MappingException e ) { throw exceptionConverter.convert( new IllegalArgumentException( e.getMessage(), e ) ); } catch ( RuntimeException e ) { //including HibernateException throw exceptionConverter.convert( e ); } return event.getResult(); }
protected void afterMerge(MergeEvent event) { Object original = event.getOriginal(); Object result = event.getResult();