Interface TableGroupJoinProducer

    • Method Detail

      • isSimpleJoinPredicate

        boolean isSimpleJoinPredicate​(Predicate predicate)
        Returns whether the given predicate is a simple join predicate for this attribute. This is useful to understand if a predicate has additional conjunctions other than the FK related predicate.
      • createTableGroupJoin

        default TableGroupJoin createTableGroupJoin​(NavigablePath navigablePath,
                                                    TableGroup lhs,
                                                    String explicitSourceAlias,
                                                    SqlAstJoinType sqlAstJoinType,
                                                    boolean fetched,
                                                    boolean addsPredicate,
                                                    SqlAstCreationState creationState)
        Create a TableGroupJoin as defined for this producer The sqlAstJoinType may be null to signal that the join is for an implicit path. When addsPredicate is true, the SQM join for the attribute contains an explicit ON clause, and is false otherwise.
      • createRootTableGroupJoin

        default TableGroup createRootTableGroupJoin​(NavigablePath navigablePath,
                                                    TableGroup lhs,
                                                    String explicitSourceAlias,
                                                    SqlAstJoinType sqlAstJoinType,
                                                    boolean fetched,
                                                    Consumer<Predicate> predicateConsumer,
                                                    SqlAstCreationState creationState)
        Create a TableGroupJoin as defined for this producer, but as root TableGroup. The main purpose of this is for correlating an association in a subquery i.e. `... alias where exists (select 1 from SomeEntity e where alias.association.attr = 1)`. The sqlAstJoinType may be null to signal that the join is for an implicit path.