Skip to content

Commit 1e7fecb

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 4a0172f commit 1e7fecb

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
@@ -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

Comments
 (0)