@@ -501,7 +501,8 @@ public void upsert(String entityName, Object entity) {
501
501
}
502
502
}
503
503
504
- private Object versionToUpsert (Object entity , EntityPersister persister , Object [] state ) {
504
+ // Hibernate Reactive calls this
505
+ protected Object versionToUpsert (Object entity , EntityPersister persister , Object [] state ) {
505
506
if ( persister .isVersioned () ) {
506
507
final Object oldVersion = persister .getVersion ( entity );
507
508
final Boolean knownTransient =
@@ -528,7 +529,8 @@ private Object versionToUpsert(Object entity, EntityPersister persister, Object[
528
529
}
529
530
}
530
531
531
- private Object idToUpsert (Object entity , EntityPersister persister ) {
532
+ // Hibernate Reactive calls this
533
+ protected Object idToUpsert (Object entity , EntityPersister persister ) {
532
534
final Object id = persister .getIdentifier ( entity , this );
533
535
final Boolean unsaved =
534
536
persister .getIdentifierMapping ()
@@ -543,7 +545,8 @@ private Object idToUpsert(Object entity, EntityPersister persister) {
543
545
544
546
// event processing ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
545
547
546
- private boolean firePreInsert (Object entity , Object id , Object [] state , EntityPersister persister ) {
548
+ // Hibernate Reactive may need to call this
549
+ protected boolean firePreInsert (Object entity , Object id , Object [] state , EntityPersister persister ) {
547
550
if ( eventListenerGroups .eventListenerGroup_PRE_INSERT .isEmpty () ) {
548
551
return false ;
549
552
}
@@ -557,7 +560,8 @@ private boolean firePreInsert(Object entity, Object id, Object[] state, EntityPe
557
560
}
558
561
}
559
562
560
- private boolean firePreUpdate (Object entity , Object id , Object [] state , EntityPersister persister ) {
563
+ // Hibernate Reactive may need to call this
564
+ protected boolean firePreUpdate (Object entity , Object id , Object [] state , EntityPersister persister ) {
561
565
if ( eventListenerGroups .eventListenerGroup_PRE_UPDATE .isEmpty () ) {
562
566
return false ;
563
567
}
@@ -571,7 +575,8 @@ private boolean firePreUpdate(Object entity, Object id, Object[] state, EntityPe
571
575
}
572
576
}
573
577
574
- private boolean firePreUpsert (Object entity , Object id , Object [] state , EntityPersister persister ) {
578
+ // Hibernate Reactive may need to call this
579
+ protected boolean firePreUpsert (Object entity , Object id , Object [] state , EntityPersister persister ) {
575
580
if ( eventListenerGroups .eventListenerGroup_PRE_UPSERT .isEmpty () ) {
576
581
return false ;
577
582
}
@@ -585,7 +590,8 @@ private boolean firePreUpsert(Object entity, Object id, Object[] state, EntityPe
585
590
}
586
591
}
587
592
588
- private boolean firePreDelete (Object entity , Object id , EntityPersister persister ) {
593
+ // Hibernate Reactive may need to call this
594
+ protected boolean firePreDelete (Object entity , Object id , EntityPersister persister ) {
589
595
if ( eventListenerGroups .eventListenerGroup_PRE_DELETE .isEmpty () ) {
590
596
return false ;
591
597
}
@@ -599,69 +605,80 @@ private boolean firePreDelete(Object entity, Object id, EntityPersister persiste
599
605
}
600
606
}
601
607
602
- private void firePostInsert (Object entity , Object id , Object [] state , EntityPersister persister ) {
608
+ // Hibernate Reactive may need to call this
609
+ protected void firePostInsert (Object entity , Object id , Object [] state , EntityPersister persister ) {
603
610
eventListenerGroups .eventListenerGroup_POST_INSERT .fireLazyEventOnEachListener (
604
611
() -> new PostInsertEvent ( entity , id , state , persister , null ),
605
612
PostInsertEventListener ::onPostInsert );
606
613
}
607
614
608
- private void firePostUpdate (Object entity , Object id , Object [] state , EntityPersister persister ) {
615
+ // Hibernate Reactive may need to call this
616
+ protected void firePostUpdate (Object entity , Object id , Object [] state , EntityPersister persister ) {
609
617
eventListenerGroups .eventListenerGroup_POST_UPDATE .fireLazyEventOnEachListener (
610
618
() -> new PostUpdateEvent ( entity , id , state , null , null , persister , null ),
611
619
PostUpdateEventListener ::onPostUpdate );
612
620
}
613
621
614
- private void firePostUpsert (Object entity , Object id , Object [] state , EntityPersister persister ) {
622
+ // Hibernate Reactive may need to call this
623
+ protected void firePostUpsert (Object entity , Object id , Object [] state , EntityPersister persister ) {
615
624
eventListenerGroups .eventListenerGroup_POST_UPSERT .fireLazyEventOnEachListener (
616
625
() -> new PostUpsertEvent ( entity , id , state , null , persister , null ),
617
626
PostUpsertEventListener ::onPostUpsert );
618
627
}
619
628
620
- private void firePostDelete (Object entity , Object id , EntityPersister persister ) {
629
+ // Hibernate Reactive may need to call this
630
+ protected void firePostDelete (Object entity , Object id , EntityPersister persister ) {
621
631
eventListenerGroups .eventListenerGroup_POST_DELETE .fireLazyEventOnEachListener (
622
632
() -> new PostDeleteEvent ( entity , id , null , persister , null ),
623
633
PostDeleteEventListener ::onPostDelete );
624
634
}
625
635
626
- private void firePreRecreate (PersistentCollection <?> collection , CollectionPersister persister ) {
636
+ // Hibernate Reactive may need to call this
637
+ protected void firePreRecreate (PersistentCollection <?> collection , CollectionPersister persister ) {
627
638
eventListenerGroups .eventListenerGroup_PRE_COLLECTION_RECREATE .fireLazyEventOnEachListener (
628
639
() -> new PreCollectionRecreateEvent ( persister , collection , null ),
629
640
PreCollectionRecreateEventListener ::onPreRecreateCollection );
630
641
}
631
642
632
- private void firePreUpdate (PersistentCollection <?> collection , CollectionPersister persister ) {
643
+ // Hibernate Reactive may need to call this
644
+ protected void firePreUpdate (PersistentCollection <?> collection , CollectionPersister persister ) {
633
645
eventListenerGroups .eventListenerGroup_PRE_COLLECTION_UPDATE .fireLazyEventOnEachListener (
634
646
() -> new PreCollectionUpdateEvent ( persister , collection , null ),
635
647
PreCollectionUpdateEventListener ::onPreUpdateCollection );
636
648
}
637
649
638
- private void firePreRemove (PersistentCollection <?> collection , Object owner , CollectionPersister persister ) {
650
+ // Hibernate Reactive may need to call this
651
+ protected void firePreRemove (PersistentCollection <?> collection , Object owner , CollectionPersister persister ) {
639
652
eventListenerGroups .eventListenerGroup_PRE_COLLECTION_REMOVE .fireLazyEventOnEachListener (
640
653
() -> new PreCollectionRemoveEvent ( persister , collection , null , owner ),
641
654
PreCollectionRemoveEventListener ::onPreRemoveCollection );
642
655
}
643
656
644
- private void firePostRecreate (PersistentCollection <?> collection , CollectionPersister persister ) {
657
+ // Hibernate Reactive may need to call this
658
+ protected void firePostRecreate (PersistentCollection <?> collection , CollectionPersister persister ) {
645
659
eventListenerGroups .eventListenerGroup_POST_COLLECTION_RECREATE .fireLazyEventOnEachListener (
646
660
() -> new PostCollectionRecreateEvent ( persister , collection , null ),
647
661
PostCollectionRecreateEventListener ::onPostRecreateCollection );
648
662
}
649
663
650
- private void firePostUpdate (PersistentCollection <?> collection , CollectionPersister persister ) {
664
+ // Hibernate Reactive may need to call this
665
+ protected void firePostUpdate (PersistentCollection <?> collection , CollectionPersister persister ) {
651
666
eventListenerGroups .eventListenerGroup_POST_COLLECTION_UPDATE .fireLazyEventOnEachListener (
652
667
() -> new PostCollectionUpdateEvent ( persister , collection , null ),
653
668
PostCollectionUpdateEventListener ::onPostUpdateCollection );
654
669
}
655
670
656
- private void firePostRemove (PersistentCollection <?> collection , Object owner , CollectionPersister persister ) {
671
+ // Hibernate Reactive may need to call this
672
+ protected void firePostRemove (PersistentCollection <?> collection , Object owner , CollectionPersister persister ) {
657
673
eventListenerGroups .eventListenerGroup_POST_COLLECTION_REMOVE .fireLazyEventOnEachListener (
658
674
() -> new PostCollectionRemoveEvent ( persister , collection , null , owner ),
659
675
PostCollectionRemoveEventListener ::onPostRemoveCollection );
660
676
}
661
677
662
678
// collections ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
663
679
664
- private void forEachOwnedCollection (
680
+ // Hibernate Reactive overrides this
681
+ protected void forEachOwnedCollection (
665
682
Object entity , Object key ,
666
683
EntityPersister persister , BiConsumer <CollectionPersister , PersistentCollection <?>> action ) {
667
684
persister .visitAttributeMappings ( attribute -> {
@@ -691,13 +708,15 @@ private void forEachOwnedCollection(
691
708
} );
692
709
}
693
710
694
- private PersistentCollection <?> instantiateEmpty (Object key , CollectionPersister descriptor ) {
711
+ // Hibernate Reactive calls this
712
+ protected PersistentCollection <?> instantiateEmpty (Object key , CollectionPersister descriptor ) {
695
713
return descriptor .getCollectionSemantics ().instantiateWrapper (key , descriptor , this );
696
714
}
697
715
698
716
//TODO: is this the right way to do this?
717
+ // Hibernate Reactive calls this
699
718
@ SuppressWarnings ({"rawtypes" , "unchecked" })
700
- private PersistentCollection <?> wrap (CollectionPersister descriptor , Object collection ) {
719
+ protected PersistentCollection <?> wrap (CollectionPersister descriptor , Object collection ) {
701
720
final CollectionSemantics collectionSemantics = descriptor .getCollectionSemantics ();
702
721
return collectionSemantics .wrap (collection , descriptor , this );
703
722
}
@@ -969,7 +988,6 @@ public Object internalLoad(
969
988
final EntityMetamodel entityMetamodel = persister .getEntityMetamodel ();
970
989
final BytecodeEnhancementMetadata enhancementMetadata = entityMetamodel .getBytecodeEnhancementMetadata ();
971
990
if ( enhancementMetadata .isEnhancedForLazyLoading () ) {
972
-
973
991
// if the entity defines a HibernateProxy factory, see if there is an
974
992
// existing proxy associated with the PC - and if so, use it
975
993
if ( persister .getRepresentationStrategy ().getProxyFactory () != null ) {
@@ -1015,7 +1033,11 @@ else if ( !entityMetamodel.hasSubclasses() ) {
1015
1033
}
1016
1034
1017
1035
// otherwise immediately materialize it
1036
+ return internalLoadGet ( entityName , id , persistenceContext );
1037
+ }
1018
1038
1039
+ // For Hibernate Reactive
1040
+ protected Object internalLoadGet (String entityName , Object id , PersistenceContext persistenceContext ) {
1019
1041
// IMPLEMENTATION NOTE: increment/decrement the load count before/after getting the value
1020
1042
// to ensure that #get does not clear the PersistenceContext.
1021
1043
persistenceContext .beforeLoad ();
0 commit comments