Interface SpiExpression

    • Method Detail

      • simplify

        void simplify()
        Simplify nested expressions if possible.
      • containsMany

        void containsMany​(BeanDescriptor<?> desc,
                          ManyWhereJoins whereManyJoins)
        Process "Many" properties populating ManyWhereJoins.

        Predicates on Many properties require an extra independent join clause.

      • queryPlanHash

        void queryPlanHash​(StringBuilder builder)
        Calculate a hash value used to identify a query for AutoTune tuning.

        That is, if the hash changes then the query will be considered different from an AutoTune perspective and get different tuning.

      • queryBindHash

        int queryBindHash()
        Return the hash value for the values that will be bound.
      • isSameByBind

        boolean isSameByBind​(SpiExpression other)
        Return true if the expression is the same with respect to bind values.
      • addSql

        void addSql​(SpiExpressionRequest request)
        Add some sql to the query.

        This will contain ? as a place holder for each associated bind values.

        The 'sql' added to the query can contain object property names rather than db tables and columns. This 'sql' is later parsed converting the logical property names to their full database column names.

        Parameters:
        request - the associated request.
      • addBindValues

        void addBindValues​(SpiExpressionRequest request)
        Add the parameter values to be set against query. For each ? place holder there should be a corresponding value that is added to the bindList.
        Parameters:
        request - the associated request.
      • getIdEqualTo

        Object getIdEqualTo​(String idName)
        Return the bind Id value if this is a "equal to" expression for the id property.