HHH-13875 : Optional one-to-one does not always join the associated entity table when querying

This commit is contained in:
Gail Badner 2020-02-21 15:32:29 -08:00 committed by gbadner
parent b060b21851
commit a7261ad053
1 changed files with 6 additions and 3 deletions

View File

@ -394,11 +394,14 @@ public class DotNode extends FromReferenceNode implements DisplayableNode, Selec
if ( isDotNode( parent ) ) {
// our parent is another dot node, meaning we are being further dereferenced.
// thus we need to generate a join unless the parent refers to the associated
// entity's PK (because 'our' table would know the FK).
// thus we need to generate a join unless the association is non-nullable and
// parent refers to the associated entity's PK (because 'our' table would know the FK).
parentAsDotNode = (DotNode) parent;
property = parentAsDotNode.propertyName;
joinIsNeeded = generateJoin && !isPropertyEmbeddedInJoinProperties( parentAsDotNode.propertyName );
joinIsNeeded = generateJoin && (
entityType.isNullable() ||
!isPropertyEmbeddedInJoinProperties( parentAsDotNode.propertyName )
);
}
else if ( !getWalker().isSelectStatement() ) {
// in non-select queries, the only time we should need to join is if we are in a subquery from clause