public class

SqlPredicates

extends Object
java.lang.Object
   ↳ com.atlassian.jira.database.SqlPredicates

Class Overview

Additional query predicates not provided directly by QueryDSL

Summary

Constants
int MAX_SQL_SERVER_PARAMETER_LIMIT The maximum number of parameters SQL Server allows in a single query
Public Constructors
SqlPredicates(DatabaseConfig dbConfig)
Public Methods
<D> Predicate inAny(SimpleExpression<D> left, Iterable<? extends List<? extends D>> lists)
Create a left in right or... expression for each list This method can be removed once we upgrade to QueryDSL 3.6.0 or above, when QueryDSL introduces ExpressionUtils.inAny()
<D> Predicate partitionedIn(SimpleExpression<D> left, Collection<? extends D> right)
Create a SQL IN clause, if necessary partitioning to account for Oracle's maximum of 1000 parameters for each IN clause.
[Expand]
Inherited Methods
From class java.lang.Object

Constants

public static final int MAX_SQL_SERVER_PARAMETER_LIMIT

The maximum number of parameters SQL Server allows in a single query

Constant Value: 2000 (0x000007d0)

Public Constructors

public SqlPredicates (DatabaseConfig dbConfig)

Public Methods

public Predicate inAny (SimpleExpression<D> left, Iterable<? extends List<? extends D>> lists)

Create a left in right or... expression for each list This method can be removed once we upgrade to QueryDSL 3.6.0 or above, when QueryDSL introduces ExpressionUtils.inAny()

Parameters
left expression
Returns
  • a left in right or... expression

public Predicate partitionedIn (SimpleExpression<D> left, Collection<? extends D> right)

Create a SQL IN clause, if necessary partitioning to account for Oracle's maximum of 1000 parameters for each IN clause.

For Oracle, where the collection has greater than 1000 parameters, the clause will be partitioned into multiple IN...OR...IN clauses.

For other databases, a standard IN clause will be created.

This method can be removed once we upgrade to QueryDSL 3.6.0 or above, when QueryDSL will split large IN clauses for us. See https://github.com/querydsl/querydsl/issues/1022

Parameters
left left value
right right collection
Returns
  • the IN clause(s)