Skip to content

Commit 383653d

Browse files
committed
HHH-16885 Hibernate 6.x changes outer to inner join when @entitygraph and @id
1 parent f808546 commit 383653d

File tree

4 files changed

+20
-42
lines changed

4 files changed

+20
-42
lines changed

hibernate-core/src/main/java/org/hibernate/metamodel/internal/AbstractCompositeIdentifierMapping.java

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -126,13 +126,7 @@ public TableGroupJoin createTableGroupJoin(
126126
boolean fetched,
127127
boolean addsPredicate,
128128
SqlAstCreationState creationState) {
129-
final SqlAstJoinType joinType;
130-
if ( requestedJoinType == null ) {
131-
joinType = SqlAstJoinType.INNER;
132-
}
133-
else {
134-
joinType = requestedJoinType;
135-
}
129+
final SqlAstJoinType joinType = determineSqlJoinType( lhs, requestedJoinType, fetched );
136130
final TableGroup tableGroup = createRootTableGroupJoin(
137131
navigablePath,
138132
lhs,
@@ -295,4 +289,5 @@ public boolean hasPartitionedSelectionMapping() {
295289
public boolean containsTableReference(String tableExpression) {
296290
return entityMapping.containsTableReference( tableExpression );
297291
}
292+
298293
}

hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/PluralAttributeMappingImpl.java

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -680,22 +680,6 @@ public TableGroupJoin createTableGroupJoin(
680680
);
681681
}
682682

683-
private SqlAstJoinType determineSqlJoinType(TableGroup lhs, SqlAstJoinType requestedJoinType, boolean fetched) {
684-
final SqlAstJoinType joinType;
685-
if ( requestedJoinType == null ) {
686-
if ( fetched ) {
687-
joinType = getDefaultSqlAstJoinType( lhs );
688-
}
689-
else {
690-
joinType = SqlAstJoinType.INNER;
691-
}
692-
}
693-
else {
694-
joinType = requestedJoinType;
695-
}
696-
return joinType;
697-
}
698-
699683
@Override
700684
public TableGroup createRootTableGroupJoin(
701685
NavigablePath navigablePath,
@@ -707,9 +691,7 @@ public TableGroup createRootTableGroupJoin(
707691
Consumer<Predicate> predicateConsumer,
708692
SqlAstCreationState creationState) {
709693
final CollectionPersister collectionDescriptor = getCollectionDescriptor();
710-
final SqlAstJoinType joinType = requestedJoinType == null
711-
? SqlAstJoinType.INNER
712-
: requestedJoinType;
694+
final SqlAstJoinType joinType = determineSqlJoinType( lhs, requestedJoinType, fetched );
713695
final SqlAliasBase sqlAliasBase = creationState.getSqlAliasBaseGenerator().createSqlAliasBase( getSqlAliasStem() );
714696

715697
final TableGroup tableGroup;
@@ -741,6 +723,7 @@ public TableGroup createRootTableGroupJoin(
741723
return tableGroup;
742724
}
743725

726+
744727
@Override
745728
public void setForeignKeyDescriptor(ForeignKeyDescriptor fkDescriptor) {
746729
this.fkDescriptor = fkDescriptor;

hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/ToOneAttributeMapping.java

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1991,22 +1991,6 @@ public TableGroupJoin createTableGroupJoin(
19911991
return join;
19921992
}
19931993

1994-
private SqlAstJoinType determineSqlJoinType(TableGroup lhs, SqlAstJoinType requestedJoinType, boolean fetched) {
1995-
final SqlAstJoinType joinType;
1996-
if ( requestedJoinType == null ) {
1997-
if ( fetched ) {
1998-
joinType = getDefaultSqlAstJoinType( lhs );
1999-
}
2000-
else {
2001-
joinType = SqlAstJoinType.INNER;
2002-
}
2003-
}
2004-
else {
2005-
joinType = requestedJoinType;
2006-
}
2007-
return joinType;
2008-
}
2009-
20101994
@Override
20111995
public LazyTableGroup createRootTableGroupJoin(
20121996
NavigablePath navigablePath,

hibernate-core/src/main/java/org/hibernate/sql/ast/tree/from/TableGroupJoinProducer.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,4 +76,20 @@ TableGroup createRootTableGroupJoin(
7676
boolean fetched,
7777
Consumer<Predicate> predicateConsumer,
7878
SqlAstCreationState creationState);
79+
80+
default SqlAstJoinType determineSqlJoinType(TableGroup lhs, SqlAstJoinType requestedJoinType, boolean fetched) {
81+
final SqlAstJoinType joinType;
82+
if ( requestedJoinType == null ) {
83+
if ( fetched ) {
84+
joinType = getDefaultSqlAstJoinType( lhs );
85+
}
86+
else {
87+
joinType = SqlAstJoinType.INNER;
88+
}
89+
}
90+
else {
91+
joinType = requestedJoinType;
92+
}
93+
return joinType;
94+
}
7995
}

0 commit comments

Comments
 (0)