Interface SqlExpressionResolver

  • All Known Implementing Classes:
    BaseSqmToSqlAstConverter.DelegatingSqmAliasedNodeCollector, BaseSqmToSqlAstConverter.SqmAliasedNodePositionTracker, DomainResultCreationStateImpl

    public interface SqlExpressionResolver
    Resolution of a SqlSelection reference for a given SqlSelectable. Some SqlSelectable are required to be qualified (e.g. a Column) - this is indicated by the QualifiableSqlSelectable subtype. The NonQualifiableSqlSelectable subtype indicates a SqlSelectable that does not require qualification (e.g. a literal).

    The point of this contract is to allow "unique-ing" of SqlSelectable references in a query to a single SqlSelection reference - effectively a caching of SqlSelection instances keyed by the SqlSelectable (+ qualifier when applicable) that it refers to.

    Note also that the returns can be a specialized Expression represented by SqlSelectionExpression