@@ -496,7 +496,8 @@ public void upsert(String entityName, Object entity) {
496
496
}
497
497
}
498
498
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 ) {
500
501
if ( persister .isVersioned () ) {
501
502
final Object oldVersion = persister .getVersion ( entity );
502
503
final Boolean knownTransient =
@@ -523,7 +524,8 @@ private Object versionToUpsert(Object entity, EntityPersister persister, Object[
523
524
}
524
525
}
525
526
526
- private Object idToUpsert (Object entity , EntityPersister persister ) {
527
+ // Hibernate Reactive calls this
528
+ protected Object idToUpsert (Object entity , EntityPersister persister ) {
527
529
final Object id = persister .getIdentifier ( entity , this );
528
530
final Boolean unsaved =
529
531
persister .getIdentifierMapping ()
@@ -538,7 +540,8 @@ private Object idToUpsert(Object entity, EntityPersister persister) {
538
540
539
541
// event processing ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
540
542
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 ) {
542
545
if ( eventListenerGroups .eventListenerGroup_PRE_INSERT .isEmpty () ) {
543
546
return false ;
544
547
}
@@ -552,7 +555,8 @@ private boolean firePreInsert(Object entity, Object id, Object[] state, EntityPe
552
555
}
553
556
}
554
557
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 ) {
556
560
if ( eventListenerGroups .eventListenerGroup_PRE_UPDATE .isEmpty () ) {
557
561
return false ;
558
562
}
@@ -566,7 +570,8 @@ private boolean firePreUpdate(Object entity, Object id, Object[] state, EntityPe
566
570
}
567
571
}
568
572
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 ) {
570
575
if ( eventListenerGroups .eventListenerGroup_PRE_UPSERT .isEmpty () ) {
571
576
return false ;
572
577
}
@@ -580,7 +585,8 @@ private boolean firePreUpsert(Object entity, Object id, Object[] state, EntityPe
580
585
}
581
586
}
582
587
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 ) {
584
590
if ( eventListenerGroups .eventListenerGroup_PRE_DELETE .isEmpty () ) {
585
591
return false ;
586
592
}
@@ -594,69 +600,80 @@ private boolean firePreDelete(Object entity, Object id, EntityPersister persiste
594
600
}
595
601
}
596
602
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 ) {
598
605
eventListenerGroups .eventListenerGroup_POST_INSERT .fireLazyEventOnEachListener (
599
606
() -> new PostInsertEvent ( entity , id , state , persister , null ),
600
607
PostInsertEventListener ::onPostInsert );
601
608
}
602
609
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 ) {
604
612
eventListenerGroups .eventListenerGroup_POST_UPDATE .fireLazyEventOnEachListener (
605
613
() -> new PostUpdateEvent ( entity , id , state , null , null , persister , null ),
606
614
PostUpdateEventListener ::onPostUpdate );
607
615
}
608
616
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 ) {
610
619
eventListenerGroups .eventListenerGroup_POST_UPSERT .fireLazyEventOnEachListener (
611
620
() -> new PostUpsertEvent ( entity , id , state , null , persister , null ),
612
621
PostUpsertEventListener ::onPostUpsert );
613
622
}
614
623
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 ) {
616
626
eventListenerGroups .eventListenerGroup_POST_DELETE .fireLazyEventOnEachListener (
617
627
() -> new PostDeleteEvent ( entity , id , null , persister , null ),
618
628
PostDeleteEventListener ::onPostDelete );
619
629
}
620
630
621
- private void firePreRecreate (PersistentCollection <?> collection , CollectionPersister persister ) {
631
+ // Hibernate Reactive may need to call this
632
+ protected void firePreRecreate (PersistentCollection <?> collection , CollectionPersister persister ) {
622
633
eventListenerGroups .eventListenerGroup_PRE_COLLECTION_RECREATE .fireLazyEventOnEachListener (
623
634
() -> new PreCollectionRecreateEvent ( persister , collection , null ),
624
635
PreCollectionRecreateEventListener ::onPreRecreateCollection );
625
636
}
626
637
627
- private void firePreUpdate (PersistentCollection <?> collection , CollectionPersister persister ) {
638
+ // Hibernate Reactive may need to call this
639
+ protected void firePreUpdate (PersistentCollection <?> collection , CollectionPersister persister ) {
628
640
eventListenerGroups .eventListenerGroup_PRE_COLLECTION_UPDATE .fireLazyEventOnEachListener (
629
641
() -> new PreCollectionUpdateEvent ( persister , collection , null ),
630
642
PreCollectionUpdateEventListener ::onPreUpdateCollection );
631
643
}
632
644
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 ) {
634
647
eventListenerGroups .eventListenerGroup_PRE_COLLECTION_REMOVE .fireLazyEventOnEachListener (
635
648
() -> new PreCollectionRemoveEvent ( persister , collection , null , owner ),
636
649
PreCollectionRemoveEventListener ::onPreRemoveCollection );
637
650
}
638
651
639
- private void firePostRecreate (PersistentCollection <?> collection , CollectionPersister persister ) {
652
+ // Hibernate Reactive may need to call this
653
+ protected void firePostRecreate (PersistentCollection <?> collection , CollectionPersister persister ) {
640
654
eventListenerGroups .eventListenerGroup_POST_COLLECTION_RECREATE .fireLazyEventOnEachListener (
641
655
() -> new PostCollectionRecreateEvent ( persister , collection , null ),
642
656
PostCollectionRecreateEventListener ::onPostRecreateCollection );
643
657
}
644
658
645
- private void firePostUpdate (PersistentCollection <?> collection , CollectionPersister persister ) {
659
+ // Hibernate Reactive may need to call this
660
+ protected void firePostUpdate (PersistentCollection <?> collection , CollectionPersister persister ) {
646
661
eventListenerGroups .eventListenerGroup_POST_COLLECTION_UPDATE .fireLazyEventOnEachListener (
647
662
() -> new PostCollectionUpdateEvent ( persister , collection , null ),
648
663
PostCollectionUpdateEventListener ::onPostUpdateCollection );
649
664
}
650
665
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 ) {
652
668
eventListenerGroups .eventListenerGroup_POST_COLLECTION_REMOVE .fireLazyEventOnEachListener (
653
669
() -> new PostCollectionRemoveEvent ( persister , collection , null , owner ),
654
670
PostCollectionRemoveEventListener ::onPostRemoveCollection );
655
671
}
656
672
657
673
// collections ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
658
674
659
- private void forEachOwnedCollection (
675
+ // Hibernate Reactive overrides this
676
+ protected void forEachOwnedCollection (
660
677
Object entity , Object key ,
661
678
EntityPersister persister , BiConsumer <CollectionPersister , PersistentCollection <?>> action ) {
662
679
persister .visitAttributeMappings ( attribute -> {
@@ -686,13 +703,15 @@ private void forEachOwnedCollection(
686
703
} );
687
704
}
688
705
689
- private PersistentCollection <?> instantiateEmpty (Object key , CollectionPersister descriptor ) {
706
+ // Hibernate Reactive calls this
707
+ protected PersistentCollection <?> instantiateEmpty (Object key , CollectionPersister descriptor ) {
690
708
return descriptor .getCollectionSemantics ().instantiateWrapper (key , descriptor , this );
691
709
}
692
710
693
711
//TODO: is this the right way to do this?
712
+ // Hibernate Reactive calls this
694
713
@ SuppressWarnings ({"rawtypes" , "unchecked" })
695
- private PersistentCollection <?> wrap (CollectionPersister descriptor , Object collection ) {
714
+ protected PersistentCollection <?> wrap (CollectionPersister descriptor , Object collection ) {
696
715
final CollectionSemantics collectionSemantics = descriptor .getCollectionSemantics ();
697
716
return collectionSemantics .wrap (collection , descriptor , this );
698
717
}
@@ -964,7 +983,6 @@ public Object internalLoad(
964
983
final EntityMetamodel entityMetamodel = persister .getEntityMetamodel ();
965
984
final BytecodeEnhancementMetadata enhancementMetadata = entityMetamodel .getBytecodeEnhancementMetadata ();
966
985
if ( enhancementMetadata .isEnhancedForLazyLoading () ) {
967
-
968
986
// if the entity defines a HibernateProxy factory, see if there is an
969
987
// existing proxy associated with the PC - and if so, use it
970
988
if ( persister .getRepresentationStrategy ().getProxyFactory () != null ) {
@@ -1010,7 +1028,11 @@ else if ( !entityMetamodel.hasSubclasses() ) {
1010
1028
}
1011
1029
1012
1030
// otherwise immediately materialize it
1031
+ return internalLoadGet ( entityName , id , persistenceContext );
1032
+ }
1013
1033
1034
+ // For Hibernate Reactive
1035
+ protected Object internalLoadGet (String entityName , Object id , PersistenceContext persistenceContext ) {
1014
1036
// IMPLEMENTATION NOTE: increment/decrement the load count before/after getting the value
1015
1037
// to ensure that #get does not clear the PersistenceContext.
1016
1038
persistenceContext .beforeLoad ();
0 commit comments