@@ -496,7 +496,8 @@ public void upsert(String entityName, Object entity) {
496496 }
497497 }
498498
499- private Object versionToUpsert (Object entity , EntityPersister persister , Object [] state ) {
499+ // Hibernate Reactive calls this
500+ protected Object versionToUpsert (Object entity , EntityPersister persister , Object [] state ) {
500501 if ( persister .isVersioned () ) {
501502 final Object oldVersion = persister .getVersion ( entity );
502503 final Boolean knownTransient =
@@ -523,7 +524,8 @@ private Object versionToUpsert(Object entity, EntityPersister persister, Object[
523524 }
524525 }
525526
526- private Object idToUpsert (Object entity , EntityPersister persister ) {
527+ // Hibernate Reactive calls this
528+ protected Object idToUpsert (Object entity , EntityPersister persister ) {
527529 final Object id = persister .getIdentifier ( entity , this );
528530 final Boolean unsaved =
529531 persister .getIdentifierMapping ()
@@ -538,7 +540,8 @@ private Object idToUpsert(Object entity, EntityPersister persister) {
538540
539541 // event processing ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
540542
541- private boolean firePreInsert (Object entity , Object id , Object [] state , EntityPersister persister ) {
543+ // Hibernate Reactive may need to call this
544+ protected boolean firePreInsert (Object entity , Object id , Object [] state , EntityPersister persister ) {
542545 if ( eventListenerGroups .eventListenerGroup_PRE_INSERT .isEmpty () ) {
543546 return false ;
544547 }
@@ -552,7 +555,8 @@ private boolean firePreInsert(Object entity, Object id, Object[] state, EntityPe
552555 }
553556 }
554557
555- private boolean firePreUpdate (Object entity , Object id , Object [] state , EntityPersister persister ) {
558+ // Hibernate Reactive may need to call this
559+ protected boolean firePreUpdate (Object entity , Object id , Object [] state , EntityPersister persister ) {
556560 if ( eventListenerGroups .eventListenerGroup_PRE_UPDATE .isEmpty () ) {
557561 return false ;
558562 }
@@ -566,7 +570,8 @@ private boolean firePreUpdate(Object entity, Object id, Object[] state, EntityPe
566570 }
567571 }
568572
569- private boolean firePreUpsert (Object entity , Object id , Object [] state , EntityPersister persister ) {
573+ // Hibernate Reactive may need to call this
574+ protected boolean firePreUpsert (Object entity , Object id , Object [] state , EntityPersister persister ) {
570575 if ( eventListenerGroups .eventListenerGroup_PRE_UPSERT .isEmpty () ) {
571576 return false ;
572577 }
@@ -580,7 +585,8 @@ private boolean firePreUpsert(Object entity, Object id, Object[] state, EntityPe
580585 }
581586 }
582587
583- private boolean firePreDelete (Object entity , Object id , EntityPersister persister ) {
588+ // Hibernate Reactive may need to call this
589+ protected boolean firePreDelete (Object entity , Object id , EntityPersister persister ) {
584590 if ( eventListenerGroups .eventListenerGroup_PRE_DELETE .isEmpty () ) {
585591 return false ;
586592 }
@@ -594,69 +600,80 @@ private boolean firePreDelete(Object entity, Object id, EntityPersister persiste
594600 }
595601 }
596602
597- private void firePostInsert (Object entity , Object id , Object [] state , EntityPersister persister ) {
603+ // Hibernate Reactive may need to call this
604+ protected void firePostInsert (Object entity , Object id , Object [] state , EntityPersister persister ) {
598605 eventListenerGroups .eventListenerGroup_POST_INSERT .fireLazyEventOnEachListener (
599606 () -> new PostInsertEvent ( entity , id , state , persister , null ),
600607 PostInsertEventListener ::onPostInsert );
601608 }
602609
603- private void firePostUpdate (Object entity , Object id , Object [] state , EntityPersister persister ) {
610+ // Hibernate Reactive may need to call this
611+ protected void firePostUpdate (Object entity , Object id , Object [] state , EntityPersister persister ) {
604612 eventListenerGroups .eventListenerGroup_POST_UPDATE .fireLazyEventOnEachListener (
605613 () -> new PostUpdateEvent ( entity , id , state , null , null , persister , null ),
606614 PostUpdateEventListener ::onPostUpdate );
607615 }
608616
609- private void firePostUpsert (Object entity , Object id , Object [] state , EntityPersister persister ) {
617+ // Hibernate Reactive may need to call this
618+ protected void firePostUpsert (Object entity , Object id , Object [] state , EntityPersister persister ) {
610619 eventListenerGroups .eventListenerGroup_POST_UPSERT .fireLazyEventOnEachListener (
611620 () -> new PostUpsertEvent ( entity , id , state , null , persister , null ),
612621 PostUpsertEventListener ::onPostUpsert );
613622 }
614623
615- private void firePostDelete (Object entity , Object id , EntityPersister persister ) {
624+ // Hibernate Reactive may need to call this
625+ protected void firePostDelete (Object entity , Object id , EntityPersister persister ) {
616626 eventListenerGroups .eventListenerGroup_POST_DELETE .fireLazyEventOnEachListener (
617627 () -> new PostDeleteEvent ( entity , id , null , persister , null ),
618628 PostDeleteEventListener ::onPostDelete );
619629 }
620630
621- private void firePreRecreate (PersistentCollection <?> collection , CollectionPersister persister ) {
631+ // Hibernate Reactive may need to call this
632+ protected void firePreRecreate (PersistentCollection <?> collection , CollectionPersister persister ) {
622633 eventListenerGroups .eventListenerGroup_PRE_COLLECTION_RECREATE .fireLazyEventOnEachListener (
623634 () -> new PreCollectionRecreateEvent ( persister , collection , null ),
624635 PreCollectionRecreateEventListener ::onPreRecreateCollection );
625636 }
626637
627- private void firePreUpdate (PersistentCollection <?> collection , CollectionPersister persister ) {
638+ // Hibernate Reactive may need to call this
639+ protected void firePreUpdate (PersistentCollection <?> collection , CollectionPersister persister ) {
628640 eventListenerGroups .eventListenerGroup_PRE_COLLECTION_UPDATE .fireLazyEventOnEachListener (
629641 () -> new PreCollectionUpdateEvent ( persister , collection , null ),
630642 PreCollectionUpdateEventListener ::onPreUpdateCollection );
631643 }
632644
633- private void firePreRemove (PersistentCollection <?> collection , Object owner , CollectionPersister persister ) {
645+ // Hibernate Reactive may need to call this
646+ protected void firePreRemove (PersistentCollection <?> collection , Object owner , CollectionPersister persister ) {
634647 eventListenerGroups .eventListenerGroup_PRE_COLLECTION_REMOVE .fireLazyEventOnEachListener (
635648 () -> new PreCollectionRemoveEvent ( persister , collection , null , owner ),
636649 PreCollectionRemoveEventListener ::onPreRemoveCollection );
637650 }
638651
639- private void firePostRecreate (PersistentCollection <?> collection , CollectionPersister persister ) {
652+ // Hibernate Reactive may need to call this
653+ protected void firePostRecreate (PersistentCollection <?> collection , CollectionPersister persister ) {
640654 eventListenerGroups .eventListenerGroup_POST_COLLECTION_RECREATE .fireLazyEventOnEachListener (
641655 () -> new PostCollectionRecreateEvent ( persister , collection , null ),
642656 PostCollectionRecreateEventListener ::onPostRecreateCollection );
643657 }
644658
645- private void firePostUpdate (PersistentCollection <?> collection , CollectionPersister persister ) {
659+ // Hibernate Reactive may need to call this
660+ protected void firePostUpdate (PersistentCollection <?> collection , CollectionPersister persister ) {
646661 eventListenerGroups .eventListenerGroup_POST_COLLECTION_UPDATE .fireLazyEventOnEachListener (
647662 () -> new PostCollectionUpdateEvent ( persister , collection , null ),
648663 PostCollectionUpdateEventListener ::onPostUpdateCollection );
649664 }
650665
651- private void firePostRemove (PersistentCollection <?> collection , Object owner , CollectionPersister persister ) {
666+ // Hibernate Reactive may need to call this
667+ protected void firePostRemove (PersistentCollection <?> collection , Object owner , CollectionPersister persister ) {
652668 eventListenerGroups .eventListenerGroup_POST_COLLECTION_REMOVE .fireLazyEventOnEachListener (
653669 () -> new PostCollectionRemoveEvent ( persister , collection , null , owner ),
654670 PostCollectionRemoveEventListener ::onPostRemoveCollection );
655671 }
656672
657673 // collections ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
658674
659- private void forEachOwnedCollection (
675+ // Hibernate Reactive overrides this
676+ protected void forEachOwnedCollection (
660677 Object entity , Object key ,
661678 EntityPersister persister , BiConsumer <CollectionPersister , PersistentCollection <?>> action ) {
662679 persister .visitAttributeMappings ( attribute -> {
@@ -686,13 +703,15 @@ private void forEachOwnedCollection(
686703 } );
687704 }
688705
689- private PersistentCollection <?> instantiateEmpty (Object key , CollectionPersister descriptor ) {
706+ // Hibernate Reactive calls this
707+ protected PersistentCollection <?> instantiateEmpty (Object key , CollectionPersister descriptor ) {
690708 return descriptor .getCollectionSemantics ().instantiateWrapper (key , descriptor , this );
691709 }
692710
693711 //TODO: is this the right way to do this?
712+ // Hibernate Reactive calls this
694713 @ SuppressWarnings ({"rawtypes" , "unchecked" })
695- private PersistentCollection <?> wrap (CollectionPersister descriptor , Object collection ) {
714+ protected PersistentCollection <?> wrap (CollectionPersister descriptor , Object collection ) {
696715 final CollectionSemantics collectionSemantics = descriptor .getCollectionSemantics ();
697716 return collectionSemantics .wrap (collection , descriptor , this );
698717 }
@@ -964,7 +983,6 @@ public Object internalLoad(
964983 final EntityMetamodel entityMetamodel = persister .getEntityMetamodel ();
965984 final BytecodeEnhancementMetadata enhancementMetadata = entityMetamodel .getBytecodeEnhancementMetadata ();
966985 if ( enhancementMetadata .isEnhancedForLazyLoading () ) {
967-
968986 // if the entity defines a HibernateProxy factory, see if there is an
969987 // existing proxy associated with the PC - and if so, use it
970988 if ( persister .getRepresentationStrategy ().getProxyFactory () != null ) {
@@ -1010,7 +1028,11 @@ else if ( !entityMetamodel.hasSubclasses() ) {
10101028 }
10111029
10121030 // otherwise immediately materialize it
1031+ return internalLoadGet ( entityName , id , persistenceContext );
1032+ }
10131033
1034+ // For Hibernate Reactive
1035+ protected Object internalLoadGet (String entityName , Object id , PersistenceContext persistenceContext ) {
10141036 // IMPLEMENTATION NOTE: increment/decrement the load count before/after getting the value
10151037 // to ensure that #get does not clear the PersistenceContext.
10161038 persistenceContext .beforeLoad ();
0 commit comments