Class InExpressionBuilder


  • @Internal
    public class InExpressionBuilder
    extends Object
    Builder for dealing with query strings using the IN clause (or NOT IN clause). Some database dialects have limits and need to be handled specifically.
    Since:
    6.4.1
    • Method Detail

      • getInExpressionBuilderDefaultLimit

        public static InExpressionBuilder getInExpressionBuilderDefaultLimit​(String fieldName,
                                                                             String parameterName,
                                                                             List<String> parameterValues,
                                                                             org.hibernate.dialect.Dialect dialect)
      • getInExpressionBuilderCustomLimit

        public static InExpressionBuilder getInExpressionBuilderCustomLimit​(String fieldName,
                                                                            String parameterName,
                                                                            List<String> parameterValues,
                                                                            int inExpressionLimit)
      • getInExpressionBuilderDefaultLimit

        public static InExpressionBuilder getInExpressionBuilderDefaultLimit​(String fieldName,
                                                                             String parameterName,
                                                                             org.hibernate.dialect.Dialect dialect)
      • getNotInExpressionBuilderDefaultLimit

        public static InExpressionBuilder getNotInExpressionBuilderDefaultLimit​(String fieldName,
                                                                                String parameterName,
                                                                                List<String> parameterValues,
                                                                                org.hibernate.dialect.Dialect dialect)
      • getNotInExpressionBuilderCustomLimit

        public static InExpressionBuilder getNotInExpressionBuilderCustomLimit​(String fieldName,
                                                                               String parameterName,
                                                                               List<String> parameterValues,
                                                                               int inExpressionLimit)
      • getNotInExpressionBuilderDefaultLimit

        public static InExpressionBuilder getNotInExpressionBuilderDefaultLimit​(String fieldName,
                                                                                String parameterName,
                                                                                org.hibernate.dialect.Dialect dialect)
      • buildInExpressionString

        public String buildInExpressionString()
        If required, split up the IN/NOT-IN expression into smaller partitions which are within the IN clause limitations.
        Returns:
        The expression modified into smaller partitions if required. If list is empty, simply returns an expression that is always true/false depending on the clause type.
      • convertIdsToInClauseString

        public String convertIdsToInClauseString​(List<Long> ids)
        Convert a list of Long into an an expression which is within the IN clause limitations we are working around. This method does not bind any parameters, it simply creates the IN clause as a String. We shouldn't use this method for String input because of potential security issues, so it takes in Longs (IDs) only.
        Returns:
        The list of Long modified into smaller partitions if required. If list is empty, simply returns an expression that is always true/false depending on the clause type.
      • substituteInExpressionParameters

        public void substituteInExpressionParameters​(org.hibernate.query.Query query)
        Takes in a Query and substitutes actual values into the parameter lists, according to the IN clause limitations.
        Parameters:
        query - The query to substitute actual parameter values into.