Skip to content

Commit 33dafd3

Browse files
committed
HHH-19585 Object relationship mapping issues | java.lang.NullPointerException: Cannot invoke java.lang.Comparable.compareTo(Object) because 'one' is null
1 parent cb3b8ec commit 33dafd3

File tree

3 files changed

+12
-2
lines changed

3 files changed

+12
-2
lines changed

hibernate-core/src/main/java/org/hibernate/sql/results/graph/InitializerParent.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,17 @@
66
*/
77
package org.hibernate.sql.results.graph;
88

9+
10+
import org.hibernate.Hibernate;
11+
912
/**
1013
* Provides access to information about the owner/parent of a fetch
1114
* in relation to the current "row" being processed.
1215
*
1316
* @author Steve Ebersole
1417
*/
1518
public interface InitializerParent<Data extends InitializerData> extends Initializer<Data> {
16-
19+
default Object getResolvedInstanceNoProxy(Data data){
20+
return Hibernate.unproxy( getResolvedInstance( data ) );
21+
}
1722
}

hibernate-core/src/main/java/org/hibernate/sql/results/graph/embeddable/internal/EmbeddableInitializerImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -465,7 +465,7 @@ private void prepareCompositeInstance(EmbeddableInitializerData data) {
465465
if ( parent != null && embedded instanceof VirtualModelPart && !isPartOfKey && data.getState() != State.MISSING ) {
466466
final InitializerData subData = parent.getData( data.getRowProcessingState() );
467467
parent.resolveInstance( subData );
468-
data.setInstance( parent.getResolvedInstance( subData ) );
468+
data.setInstance( parent.getResolvedInstanceNoProxy( subData ) );
469469
if ( data.getState() == State.INITIALIZED ) {
470470
return;
471471
}

hibernate-core/src/main/java/org/hibernate/sql/results/graph/entity/internal/EntityInitializerImpl.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1794,6 +1794,11 @@ public String toString() {
17941794
return "EntityJoinedFetchInitializer(" + LoggingHelper.toLoggableString( getNavigablePath() ) + ")";
17951795
}
17961796

1797+
@Override
1798+
public Object getResolvedInstanceNoProxy(EntityInitializerData data) {
1799+
return data.entityInstanceForNotify;
1800+
}
1801+
17971802
//#########################
17981803
// For Hibernate Reactive
17991804
//#########################

0 commit comments

Comments
 (0)