Skip to content

Commit 5c46a9f

Browse files
committed
HHH-19348 Change scope of private methods in StatelessSessionImpl
For Hibernate Reactive Change scopes of some private methods, and small refactoring to avoid duplication in Hibernate Reactive. Related to hibernate/hibernate-reactive#2181
1 parent d1cd73e commit 5c46a9f

File tree

1 file changed

+42
-20
lines changed

1 file changed

+42
-20
lines changed

hibernate-core/src/main/java/org/hibernate/internal/StatelessSessionImpl.java

Lines changed: 42 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -501,7 +501,8 @@ public void upsert(String entityName, Object entity) {
501501
}
502502
}
503503

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) {
505506
if ( persister.isVersioned() ) {
506507
final Object oldVersion = persister.getVersion( entity );
507508
final Boolean knownTransient =
@@ -528,7 +529,8 @@ private Object versionToUpsert(Object entity, EntityPersister persister, Object[
528529
}
529530
}
530531

531-
private Object idToUpsert(Object entity, EntityPersister persister) {
532+
// Hibernate Reactive calls this
533+
protected Object idToUpsert(Object entity, EntityPersister persister) {
532534
final Object id = persister.getIdentifier( entity, this );
533535
final Boolean unsaved =
534536
persister.getIdentifierMapping()
@@ -543,7 +545,8 @@ private Object idToUpsert(Object entity, EntityPersister persister) {
543545

544546
// event processing ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
545547

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) {
547550
if ( eventListenerGroups.eventListenerGroup_PRE_INSERT.isEmpty() ) {
548551
return false;
549552
}
@@ -557,7 +560,8 @@ private boolean firePreInsert(Object entity, Object id, Object[] state, EntityPe
557560
}
558561
}
559562

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) {
561565
if ( eventListenerGroups.eventListenerGroup_PRE_UPDATE.isEmpty() ) {
562566
return false;
563567
}
@@ -571,7 +575,8 @@ private boolean firePreUpdate(Object entity, Object id, Object[] state, EntityPe
571575
}
572576
}
573577

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) {
575580
if ( eventListenerGroups.eventListenerGroup_PRE_UPSERT.isEmpty() ) {
576581
return false;
577582
}
@@ -585,7 +590,8 @@ private boolean firePreUpsert(Object entity, Object id, Object[] state, EntityPe
585590
}
586591
}
587592

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) {
589595
if ( eventListenerGroups.eventListenerGroup_PRE_DELETE.isEmpty() ) {
590596
return false;
591597
}
@@ -599,69 +605,80 @@ private boolean firePreDelete(Object entity, Object id, EntityPersister persiste
599605
}
600606
}
601607

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) {
603610
eventListenerGroups.eventListenerGroup_POST_INSERT.fireLazyEventOnEachListener(
604611
() -> new PostInsertEvent( entity, id, state, persister, null ),
605612
PostInsertEventListener::onPostInsert );
606613
}
607614

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) {
609617
eventListenerGroups.eventListenerGroup_POST_UPDATE.fireLazyEventOnEachListener(
610618
() -> new PostUpdateEvent( entity, id, state, null, null, persister, null ),
611619
PostUpdateEventListener::onPostUpdate );
612620
}
613621

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) {
615624
eventListenerGroups.eventListenerGroup_POST_UPSERT.fireLazyEventOnEachListener(
616625
() -> new PostUpsertEvent( entity, id, state, null, persister, null ),
617626
PostUpsertEventListener::onPostUpsert );
618627
}
619628

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) {
621631
eventListenerGroups.eventListenerGroup_POST_DELETE.fireLazyEventOnEachListener(
622632
() -> new PostDeleteEvent( entity, id, null, persister, null ),
623633
PostDeleteEventListener::onPostDelete );
624634
}
625635

626-
private void firePreRecreate(PersistentCollection<?> collection, CollectionPersister persister) {
636+
// Hibernate Reactive may need to call this
637+
protected void firePreRecreate(PersistentCollection<?> collection, CollectionPersister persister) {
627638
eventListenerGroups.eventListenerGroup_PRE_COLLECTION_RECREATE.fireLazyEventOnEachListener(
628639
() -> new PreCollectionRecreateEvent( persister, collection, null ),
629640
PreCollectionRecreateEventListener::onPreRecreateCollection );
630641
}
631642

632-
private void firePreUpdate(PersistentCollection<?> collection, CollectionPersister persister) {
643+
// Hibernate Reactive may need to call this
644+
protected void firePreUpdate(PersistentCollection<?> collection, CollectionPersister persister) {
633645
eventListenerGroups.eventListenerGroup_PRE_COLLECTION_UPDATE.fireLazyEventOnEachListener(
634646
() -> new PreCollectionUpdateEvent( persister, collection, null ),
635647
PreCollectionUpdateEventListener::onPreUpdateCollection );
636648
}
637649

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) {
639652
eventListenerGroups.eventListenerGroup_PRE_COLLECTION_REMOVE.fireLazyEventOnEachListener(
640653
() -> new PreCollectionRemoveEvent( persister, collection, null, owner ),
641654
PreCollectionRemoveEventListener::onPreRemoveCollection );
642655
}
643656

644-
private void firePostRecreate(PersistentCollection<?> collection, CollectionPersister persister) {
657+
// Hibernate Reactive may need to call this
658+
protected void firePostRecreate(PersistentCollection<?> collection, CollectionPersister persister) {
645659
eventListenerGroups.eventListenerGroup_POST_COLLECTION_RECREATE.fireLazyEventOnEachListener(
646660
() -> new PostCollectionRecreateEvent( persister, collection, null ),
647661
PostCollectionRecreateEventListener::onPostRecreateCollection );
648662
}
649663

650-
private void firePostUpdate(PersistentCollection<?> collection, CollectionPersister persister) {
664+
// Hibernate Reactive may need to call this
665+
protected void firePostUpdate(PersistentCollection<?> collection, CollectionPersister persister) {
651666
eventListenerGroups.eventListenerGroup_POST_COLLECTION_UPDATE.fireLazyEventOnEachListener(
652667
() -> new PostCollectionUpdateEvent( persister, collection, null ),
653668
PostCollectionUpdateEventListener::onPostUpdateCollection );
654669
}
655670

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) {
657673
eventListenerGroups.eventListenerGroup_POST_COLLECTION_REMOVE.fireLazyEventOnEachListener(
658674
() -> new PostCollectionRemoveEvent( persister, collection, null, owner ),
659675
PostCollectionRemoveEventListener::onPostRemoveCollection );
660676
}
661677

662678
// collections ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
663679

664-
private void forEachOwnedCollection(
680+
// Hibernate Reactive overrides this
681+
protected void forEachOwnedCollection(
665682
Object entity, Object key,
666683
EntityPersister persister, BiConsumer<CollectionPersister, PersistentCollection<?>> action) {
667684
persister.visitAttributeMappings( attribute -> {
@@ -691,13 +708,15 @@ private void forEachOwnedCollection(
691708
} );
692709
}
693710

694-
private PersistentCollection<?> instantiateEmpty(Object key, CollectionPersister descriptor) {
711+
// Hibernate Reactive calls this
712+
protected PersistentCollection<?> instantiateEmpty(Object key, CollectionPersister descriptor) {
695713
return descriptor.getCollectionSemantics().instantiateWrapper(key, descriptor, this);
696714
}
697715

698716
//TODO: is this the right way to do this?
717+
// Hibernate Reactive calls this
699718
@SuppressWarnings({"rawtypes", "unchecked"})
700-
private PersistentCollection<?> wrap(CollectionPersister descriptor, Object collection) {
719+
protected PersistentCollection<?> wrap(CollectionPersister descriptor, Object collection) {
701720
final CollectionSemantics collectionSemantics = descriptor.getCollectionSemantics();
702721
return collectionSemantics.wrap(collection, descriptor, this);
703722
}
@@ -969,7 +988,6 @@ public Object internalLoad(
969988
final EntityMetamodel entityMetamodel = persister.getEntityMetamodel();
970989
final BytecodeEnhancementMetadata enhancementMetadata = entityMetamodel.getBytecodeEnhancementMetadata();
971990
if ( enhancementMetadata.isEnhancedForLazyLoading() ) {
972-
973991
// if the entity defines a HibernateProxy factory, see if there is an
974992
// existing proxy associated with the PC - and if so, use it
975993
if ( persister.getRepresentationStrategy().getProxyFactory() != null ) {
@@ -1015,7 +1033,11 @@ else if ( !entityMetamodel.hasSubclasses() ) {
10151033
}
10161034

10171035
// otherwise immediately materialize it
1036+
return internalLoadGet( entityName, id, persistenceContext );
1037+
}
10181038

1039+
// For Hibernate Reactive
1040+
protected Object internalLoadGet(String entityName, Object id, PersistenceContext persistenceContext) {
10191041
// IMPLEMENTATION NOTE: increment/decrement the load count before/after getting the value
10201042
// to ensure that #get does not clear the PersistenceContext.
10211043
persistenceContext.beforeLoad();

0 commit comments

Comments
 (0)