mirror of
https://github.com/hibernate/hibernate-orm
synced 2025-02-22 19:15:15 +00:00
HHH-17355 Add array functions to NodeBuilder
This commit is contained in:
parent
5b69d751f5
commit
c986f6adb6
@ -1130,6 +1130,7 @@ The following functions deal with SQL array types, which are not supported on ev
|
||||
| `array_get()` | Accesses the element of an array by index
|
||||
| `array_set()` | Creates array copy with given element at given index
|
||||
| `array_remove()` | Creates array copy with given element removed
|
||||
| `array_remove_index()` | Creates array copy with the element at the given index removed
|
||||
| `array_slice()` | Creates a sub-array of the based on lower and upper index
|
||||
| `array_replace()` | Creates array copy replacing a given element with another
|
||||
|===
|
||||
|
@ -97,6 +97,554 @@ <R> SqmTuple<R> tuple(
|
||||
SqmExpressible<R> tupleType,
|
||||
List<? extends SqmExpression<?>> expressions);
|
||||
|
||||
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Array functions for array types
|
||||
|
||||
/**
|
||||
* Creates an array literal with the {@code array} constructor function.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arrayLiteral(T... elements);
|
||||
|
||||
/**
|
||||
* Determines the 1-based position of an element in an array.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<Integer> arrayPosition(SqmExpression<T[]> arrayExpression, T element);
|
||||
|
||||
/**
|
||||
* Determines the 1-based position of an element in an array.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<Integer> arrayPosition(SqmExpression<T[]> arrayExpression, SqmExpression<T> elementExpression);
|
||||
|
||||
/**
|
||||
* Determines the length of an array.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<Integer> arrayLength(SqmExpression<T[]> arrayExpression);
|
||||
|
||||
/**
|
||||
* Concatenates arrays with each other in order.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arrayConcat(SqmExpression<T[]> arrayExpression1, SqmExpression<T[]> arrayExpression2);
|
||||
|
||||
/**
|
||||
* Concatenates arrays with each other in order.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arrayConcat(SqmExpression<T[]> arrayExpression1, T[] array2);
|
||||
|
||||
/**
|
||||
* Concatenates arrays with each other in order.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arrayConcat(T[] array1, SqmExpression<T[]> arrayExpression2);
|
||||
|
||||
/**
|
||||
* Concatenates arrays with each other in order.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arrayConcat(T[] array1, T[] array2);
|
||||
|
||||
/**
|
||||
* Appends element to array.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arrayAppend(SqmExpression<T[]> arrayExpression, SqmExpression<T> elementExpression);
|
||||
|
||||
/**
|
||||
* Appends element to array.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arrayAppend(SqmExpression<T[]> arrayExpression, T element);
|
||||
|
||||
/**
|
||||
* Appends element to array.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arrayAppend(T[] array, SqmExpression<T> elementExpression);
|
||||
|
||||
/**
|
||||
* Appends element to array.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arrayAppend(T[] array, T element);
|
||||
|
||||
/**
|
||||
* Prepends element to array.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arrayPrepend(SqmExpression<T> elementExpression, SqmExpression<T[]> arrayExpression);
|
||||
|
||||
/**
|
||||
* Prepends element to array.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arrayPrepend(T element, SqmExpression<T[]> arrayExpression);
|
||||
|
||||
/**
|
||||
* Prepends element to array.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arrayPrepend(SqmExpression<T> elementExpression, T[] array);
|
||||
|
||||
/**
|
||||
* Prepends element to array.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arrayPrepend(T element, T[] array);
|
||||
|
||||
/**
|
||||
* Whether an array contains an element.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmPredicate arrayContains(SqmExpression<T[]> arrayExpression, SqmExpression<T> elementExpression);
|
||||
|
||||
/**
|
||||
* Whether an array contains an element.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmPredicate arrayContains(SqmExpression<T[]> arrayExpression, T element);
|
||||
|
||||
/**
|
||||
* Whether an array contains an element.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmPredicate arrayContains(T[] array, SqmExpression<T> elementExpression);
|
||||
|
||||
/**
|
||||
* Whether an array contains an element.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmPredicate arrayContains(T[] array, T element);
|
||||
|
||||
/**
|
||||
* Whether an array contains a nullable element.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmPredicate arrayContainsNullable(SqmExpression<T[]> arrayExpression, SqmExpression<T> elementExpression);
|
||||
|
||||
/**
|
||||
* Whether an array contains a nullable element.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmPredicate arrayContainsNullable(SqmExpression<T[]> arrayExpression, T element);
|
||||
|
||||
/**
|
||||
* Whether an array contains a nullable element.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmPredicate arrayContainsNullable(T[] array, SqmExpression<T> elementExpression);
|
||||
|
||||
/**
|
||||
* Whether an array contains a nullable element.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmPredicate arrayContainsNullable(T[] array, T element);
|
||||
|
||||
/**
|
||||
* Whether an array contains another array.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmPredicate arrayContainsAll(SqmExpression<T[]> arrayExpression, SqmExpression<T[]> subArrayExpression);
|
||||
|
||||
/**
|
||||
* Whether an array contains another array.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmPredicate arrayContainsAll(SqmExpression<T[]> arrayExpression, T[] subArray);
|
||||
|
||||
/**
|
||||
* Whether an array contains another array.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmPredicate arrayContainsAll(T[] array, SqmExpression<T[]> subArrayExpression);
|
||||
|
||||
/**
|
||||
* Whether an array contains another array.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmPredicate arrayContainsAll(T[] array, T[] subArray);
|
||||
|
||||
/**
|
||||
* Whether an array contains another array with nullable elements.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmPredicate arrayContainsAllNullable(SqmExpression<T[]> arrayExpression, SqmExpression<T[]> subArrayExpression);
|
||||
|
||||
/**
|
||||
* Whether an array contains another array with nullable elements.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmPredicate arrayContainsAllNullable(SqmExpression<T[]> arrayExpression, T[] subArray);
|
||||
|
||||
/**
|
||||
* Whether an array contains another array with nullable elements.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmPredicate arrayContainsAllNullable(T[] array, SqmExpression<T[]> subArrayExpression);
|
||||
|
||||
/**
|
||||
* Whether an array contains another array with nullable elements.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmPredicate arrayContainsAllNullable(T[] array, T[] subArray);
|
||||
|
||||
/**
|
||||
* Whether one array has any elements common with another array.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmPredicate arrayOverlaps(SqmExpression<T[]> arrayExpression1, SqmExpression<T[]> arrayExpression2);
|
||||
|
||||
/**
|
||||
* Whether one array has any elements common with another array.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmPredicate arrayOverlaps(SqmExpression<T[]> arrayExpression1, T[] array2);
|
||||
|
||||
/**
|
||||
* Whether one array has any elements common with another array.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmPredicate arrayOverlaps(T[] array1, SqmExpression<T[]> arrayExpression2);
|
||||
|
||||
/**
|
||||
* Whether one array has any elements common with another array.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmPredicate arrayOverlaps(T[] array1, T[] array2);
|
||||
|
||||
/**
|
||||
* Whether one array has any elements common with another array, supporting {@code null} elements.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmPredicate arrayOverlapsNullable(SqmExpression<T[]> arrayExpression1, SqmExpression<T[]> arrayExpression2);
|
||||
|
||||
/**
|
||||
* Whether one array has any elements common with another array, supporting {@code null} elements.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmPredicate arrayOverlapsNullable(SqmExpression<T[]> arrayExpression1, T[] array2);
|
||||
|
||||
/**
|
||||
* Whether one array has any elements common with another array, supporting {@code null} elements.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmPredicate arrayOverlapsNullable(T[] array1, SqmExpression<T[]> arrayExpression2);
|
||||
|
||||
/**
|
||||
* Whether one array has any elements common with another array, supporting {@code null} elements.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmPredicate arrayOverlapsNullable(T[] array1, T[] array2);
|
||||
|
||||
/**
|
||||
* Accesses the element of an array by 1-based index.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T> arrayGet(SqmExpression<T[]> arrayExpression, SqmExpression<Integer> indexExpression);
|
||||
|
||||
/**
|
||||
* Accesses the element of an array by 1-based index.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T> arrayGet(SqmExpression<T[]> arrayExpression, Integer index);
|
||||
|
||||
/**
|
||||
* Accesses the element of an array by 1-based index.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T> arrayGet(T[] array, SqmExpression<Integer> indexExpression);
|
||||
|
||||
/**
|
||||
* Accesses the element of an array by 1-based index.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T> arrayGet(T[] array, Integer index);
|
||||
|
||||
/**
|
||||
* Creates array copy with given element at given 1-based index.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arraySet(SqmExpression<T[]> arrayExpression, SqmExpression<Integer> indexExpression, SqmExpression<T> elementExpression);
|
||||
/**
|
||||
* Creates array copy with given element at given 1-based index.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arraySet(SqmExpression<T[]> arrayExpression, SqmExpression<Integer> indexExpression, T element);
|
||||
|
||||
/**
|
||||
* Creates array copy with given element at given 1-based index.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arraySet(SqmExpression<T[]> arrayExpression, Integer index, SqmExpression<T> elementExpression);
|
||||
|
||||
/**
|
||||
* Creates array copy with given element at given 1-based index.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arraySet(SqmExpression<T[]> arrayExpression, Integer index, T element);
|
||||
|
||||
/**
|
||||
* Creates array copy with given element at given 1-based index.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arraySet(T[] array, SqmExpression<Integer> indexExpression, SqmExpression<T> elementExpression);
|
||||
|
||||
/**
|
||||
* Creates array copy with given element at given 1-based index.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arraySet(T[] array, SqmExpression<Integer> indexExpression, T element);
|
||||
|
||||
/**
|
||||
* Creates array copy with given element at given 1-based index.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arraySet(T[] array, Integer index, SqmExpression<T> elementExpression);
|
||||
|
||||
/**
|
||||
* Creates array copy with given element at given 1-based index.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arraySet(T[] array, Integer index, T element);
|
||||
|
||||
/**
|
||||
* Creates array copy with given element removed.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arrayRemove(SqmExpression<T[]> arrayExpression, SqmExpression<T> elementExpression);
|
||||
|
||||
/**
|
||||
* Creates array copy with given element removed.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arrayRemove(SqmExpression<T[]> arrayExpression, T element);
|
||||
|
||||
/**
|
||||
* Creates array copy with given element removed.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arrayRemove(T[] array, SqmExpression<T> elementExpression);
|
||||
|
||||
/**
|
||||
* Creates array copy with given element removed.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arrayRemove(T[] array, T element);
|
||||
|
||||
/**
|
||||
* Creates array copy with the element at the given 1-based index removed.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arrayRemoveIndex(SqmExpression<T[]> arrayExpression, SqmExpression<Integer> indexExpression);
|
||||
|
||||
/**
|
||||
* Creates array copy with the element at the given 1-based index removed.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arrayRemoveIndex(SqmExpression<T[]> arrayExpression, Integer index);
|
||||
|
||||
/**
|
||||
* Creates array copy with the element at the given 1-based index removed.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arrayRemoveIndex(T[] array, SqmExpression<Integer> indexExpression);
|
||||
|
||||
/**
|
||||
* Creates array copy with the element at the given 1-based index removed.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arrayRemoveIndex(T[] array, Integer index);
|
||||
|
||||
/**
|
||||
* Creates a sub-array of the based on 1-based lower and upper index.
|
||||
* Both indexes are inclusive.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arraySlice(SqmExpression<T[]> arrayExpression, SqmExpression<Integer> lowerIndexExpression, SqmExpression<Integer> upperIndexExpression);
|
||||
|
||||
/**
|
||||
* Creates a sub-array of the based on 1-based lower and upper index.
|
||||
* Both indexes are inclusive.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arraySlice(SqmExpression<T[]> arrayExpression, SqmExpression<Integer> lowerIndexExpression, Integer upperIndex);
|
||||
/**
|
||||
* Creates a sub-array of the based on 1-based lower and upper index.
|
||||
* Both indexes are inclusive.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arraySlice(SqmExpression<T[]> arrayExpression, Integer lowerIndex, SqmExpression<Integer> upperIndexExpression);
|
||||
|
||||
/**
|
||||
* Creates a sub-array of the based on 1-based lower and upper index.
|
||||
* Both indexes are inclusive.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arraySlice(SqmExpression<T[]> arrayExpression, Integer lowerIndex, Integer upperIndex);
|
||||
|
||||
/**
|
||||
* Creates a sub-array of the based on 1-based lower and upper index.
|
||||
* Both indexes are inclusive.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arraySlice(T[] array, SqmExpression<Integer> lowerIndexExpression, SqmExpression<Integer> upperIndexExpression);
|
||||
|
||||
/**
|
||||
* Creates a sub-array of the based on 1-based lower and upper index.
|
||||
* Both indexes are inclusive.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arraySlice(T[] array, SqmExpression<Integer> lowerIndexExpression, Integer upperIndex);
|
||||
|
||||
/**
|
||||
* Creates a sub-array of the based on 1-based lower and upper index.
|
||||
* Both indexes are inclusive.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arraySlice(T[] array, Integer lowerIndex, SqmExpression<Integer> upperIndexExpression);
|
||||
|
||||
/**
|
||||
* Creates a sub-array of the based on 1-based lower and upper index.
|
||||
* Both indexes are inclusive.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arraySlice(T[] array, Integer lowerIndex, Integer upperIndex);
|
||||
|
||||
/**
|
||||
* Creates array copy replacing a given element with another.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arrayReplace(SqmExpression<T[]> arrayExpression, SqmExpression<T> oldElementExpression, SqmExpression<T> newElementExpression);
|
||||
|
||||
/**
|
||||
* Creates array copy replacing a given element with another.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arrayReplace(SqmExpression<T[]> arrayExpression, SqmExpression<T> oldElementExpression, T newElement);
|
||||
|
||||
/**
|
||||
* Creates array copy replacing a given element with another.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arrayReplace(SqmExpression<T[]> arrayExpression, T oldElement, SqmExpression<T> newElementExpression);
|
||||
|
||||
/**
|
||||
* Creates array copy replacing a given element with another.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arrayReplace(SqmExpression<T[]> arrayExpression, T oldElement, T newElement);
|
||||
|
||||
/**
|
||||
* Creates array copy replacing a given element with another.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arrayReplace(T[] array, SqmExpression<T> oldElementExpression, SqmExpression<T> newElementExpression);
|
||||
|
||||
/**
|
||||
* Creates array copy replacing a given element with another.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arrayReplace(T[] array, SqmExpression<T> oldElementExpression, T newElement);
|
||||
|
||||
/**
|
||||
* Creates array copy replacing a given element with another.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arrayReplace(T[] array, T oldElement, SqmExpression<T> newElementExpression);
|
||||
|
||||
/**
|
||||
* Creates array copy replacing a given element with another.
|
||||
*
|
||||
* @since 6.4
|
||||
*/
|
||||
<T> SqmExpression<T[]> arrayReplace(T[] array, T oldElement, T newElement);
|
||||
|
||||
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Array functions for collection types
|
||||
|
||||
|
||||
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Covariant overrides
|
||||
|
||||
@Override
|
||||
SqmSelectStatement<Object> createQuery();
|
||||
|
||||
|
@ -3631,4 +3631,747 @@ public SqmExpression<Double> percentRank(
|
||||
Expression<?>... arguments) {
|
||||
return functionWithinGroup( "percent_rank", Double.class, order, filter, window, arguments );
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arrayLiteral(T... elements) {
|
||||
return getFunctionDescriptor( "array" ).generateSqmExpression(
|
||||
literals( elements ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<Integer> arrayPosition(SqmExpression<T[]> arrayExpression, T element) {
|
||||
return getFunctionDescriptor( "array_position" ).generateSqmExpression(
|
||||
asList( arrayExpression, value( element ) ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<Integer> arrayPosition(
|
||||
SqmExpression<T[]> arrayExpression,
|
||||
SqmExpression<T> elementExpression) {
|
||||
return getFunctionDescriptor( "array_position" ).generateSqmExpression(
|
||||
asList( arrayExpression, elementExpression ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<Integer> arrayLength(SqmExpression<T[]> arrayExpression) {
|
||||
return getFunctionDescriptor( "array_length" ).generateSqmExpression(
|
||||
asList( arrayExpression ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arrayConcat(
|
||||
SqmExpression<T[]> arrayExpression1,
|
||||
SqmExpression<T[]> arrayExpression2) {
|
||||
return getFunctionDescriptor( "array_concat" ).generateSqmExpression(
|
||||
asList( arrayExpression1, arrayExpression2 ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arrayConcat(SqmExpression<T[]> arrayExpression1, T[] array2) {
|
||||
return getFunctionDescriptor( "array_concat" ).generateSqmExpression(
|
||||
asList( arrayExpression1, value( array2, arrayExpression1 ) ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arrayConcat(T[] array1, SqmExpression<T[]> arrayExpression2) {
|
||||
return getFunctionDescriptor( "array_concat" ).generateSqmExpression(
|
||||
asList( value( array1, arrayExpression2 ), arrayExpression2 ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arrayConcat(T[] array1, T[] array2) {
|
||||
return getFunctionDescriptor( "array_concat" ).generateSqmExpression(
|
||||
asList( value( array1 ), value( array2 ) ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arrayAppend(SqmExpression<T[]> arrayExpression, SqmExpression<T> elementExpression) {
|
||||
return getFunctionDescriptor( "array_append" ).generateSqmExpression(
|
||||
asList( arrayExpression, elementExpression ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arrayAppend(SqmExpression<T[]> arrayExpression, T element) {
|
||||
return getFunctionDescriptor( "array_append" ).generateSqmExpression(
|
||||
asList( arrayExpression, value( element ) ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arrayAppend(T[] array, SqmExpression<T> elementExpression) {
|
||||
return getFunctionDescriptor( "array_append" ).generateSqmExpression(
|
||||
asList( value( array ), elementExpression ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arrayAppend(T[] array, T element) {
|
||||
return getFunctionDescriptor( "array_append" ).generateSqmExpression(
|
||||
asList( value( array ), value( element ) ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arrayPrepend(SqmExpression<T> elementExpression, SqmExpression<T[]> arrayExpression) {
|
||||
return getFunctionDescriptor( "array_prepend" ).generateSqmExpression(
|
||||
asList( elementExpression, arrayExpression ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arrayPrepend(T element, SqmExpression<T[]> arrayExpression) {
|
||||
return getFunctionDescriptor( "array_prepend" ).generateSqmExpression(
|
||||
asList( value( element ), arrayExpression ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arrayPrepend(SqmExpression<T> elementExpression, T[] array) {
|
||||
return getFunctionDescriptor( "array_prepend" ).generateSqmExpression(
|
||||
asList( elementExpression, value( array ) ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arrayPrepend(T element, T[] array) {
|
||||
return getFunctionDescriptor( "array_prepend" ).generateSqmExpression(
|
||||
asList( value( element ), value( array ) ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmPredicate arrayContains(SqmExpression<T[]> arrayExpression, SqmExpression<T> elementExpression) {
|
||||
return isTrue( getFunctionDescriptor( "array_contains" ).generateSqmExpression(
|
||||
asList( arrayExpression, elementExpression ),
|
||||
null,
|
||||
queryEngine
|
||||
) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmPredicate arrayContains(SqmExpression<T[]> arrayExpression, T element) {
|
||||
return isTrue( getFunctionDescriptor( "array_contains" ).generateSqmExpression(
|
||||
asList( arrayExpression, value( element ) ),
|
||||
null,
|
||||
queryEngine
|
||||
) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmPredicate arrayContains(T[] array, SqmExpression<T> elementExpression) {
|
||||
return isTrue( getFunctionDescriptor( "array_contains" ).generateSqmExpression(
|
||||
asList( value( array ), elementExpression ),
|
||||
null,
|
||||
queryEngine
|
||||
) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmPredicate arrayContains(T[] array, T element) {
|
||||
return isTrue( getFunctionDescriptor( "array_contains" ).generateSqmExpression(
|
||||
asList( value( array ), value( element ) ),
|
||||
null,
|
||||
queryEngine
|
||||
) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmPredicate arrayContainsNullable(
|
||||
SqmExpression<T[]> arrayExpression,
|
||||
SqmExpression<T> elementExpression) {
|
||||
return isTrue( getFunctionDescriptor( "array_contains_nullable" ).generateSqmExpression(
|
||||
asList( arrayExpression, elementExpression ),
|
||||
null,
|
||||
queryEngine
|
||||
) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmPredicate arrayContainsNullable(SqmExpression<T[]> arrayExpression, T element) {
|
||||
return isTrue( getFunctionDescriptor( "array_contains_nullable" ).generateSqmExpression(
|
||||
asList( arrayExpression, value( element ) ),
|
||||
null,
|
||||
queryEngine
|
||||
) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmPredicate arrayContainsNullable(T[] array, SqmExpression<T> elementExpression) {
|
||||
return isTrue( getFunctionDescriptor( "array_contains_nullable" ).generateSqmExpression(
|
||||
asList( value( array ), elementExpression ),
|
||||
null,
|
||||
queryEngine
|
||||
) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmPredicate arrayContainsNullable(T[] array, T element) {
|
||||
return isTrue( getFunctionDescriptor( "array_contains_nullable" ).generateSqmExpression(
|
||||
asList( value( array ), value( element ) ),
|
||||
null,
|
||||
queryEngine
|
||||
) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmPredicate arrayContainsAll(
|
||||
SqmExpression<T[]> arrayExpression,
|
||||
SqmExpression<T[]> subArrayExpression) {
|
||||
return isTrue( getFunctionDescriptor( "array_contains" ).generateSqmExpression(
|
||||
asList( arrayExpression, subArrayExpression ),
|
||||
null,
|
||||
queryEngine
|
||||
) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmPredicate arrayContainsAll(SqmExpression<T[]> arrayExpression, T[] subArray) {
|
||||
return isTrue( getFunctionDescriptor( "array_contains" ).generateSqmExpression(
|
||||
asList( arrayExpression, value( subArray, arrayExpression ) ),
|
||||
null,
|
||||
queryEngine
|
||||
) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmPredicate arrayContainsAll(T[] array, SqmExpression<T[]> subArrayExpression) {
|
||||
return isTrue( getFunctionDescriptor( "array_contains" ).generateSqmExpression(
|
||||
asList( value( array, subArrayExpression ), subArrayExpression ),
|
||||
null,
|
||||
queryEngine
|
||||
) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmPredicate arrayContainsAll(T[] array, T[] subArray) {
|
||||
return isTrue( getFunctionDescriptor( "array_contains" ).generateSqmExpression(
|
||||
asList( value( array ), value( subArray ) ),
|
||||
null,
|
||||
queryEngine
|
||||
) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmPredicate arrayContainsAllNullable(
|
||||
SqmExpression<T[]> arrayExpression,
|
||||
SqmExpression<T[]> subArrayExpression) {
|
||||
return isTrue( getFunctionDescriptor( "array_contains_nullable" ).generateSqmExpression(
|
||||
asList( arrayExpression, subArrayExpression ),
|
||||
null,
|
||||
queryEngine
|
||||
) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmPredicate arrayContainsAllNullable(SqmExpression<T[]> arrayExpression, T[] subArray) {
|
||||
return isTrue( getFunctionDescriptor( "array_contains_nullable" ).generateSqmExpression(
|
||||
asList( arrayExpression, value( subArray, arrayExpression ) ),
|
||||
null,
|
||||
queryEngine
|
||||
) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmPredicate arrayContainsAllNullable(T[] array, SqmExpression<T[]> subArrayExpression) {
|
||||
return isTrue( getFunctionDescriptor( "array_contains_nullable" ).generateSqmExpression(
|
||||
asList( value( array, subArrayExpression ), subArrayExpression ),
|
||||
null,
|
||||
queryEngine
|
||||
) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmPredicate arrayContainsAllNullable(T[] array, T[] subArray) {
|
||||
return isTrue( getFunctionDescriptor( "array_contains_nullable" ).generateSqmExpression(
|
||||
asList( value( array ), value( subArray ) ),
|
||||
null,
|
||||
queryEngine
|
||||
) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmPredicate arrayOverlaps(SqmExpression<T[]> arrayExpression1, SqmExpression<T[]> arrayExpression2) {
|
||||
return isTrue( getFunctionDescriptor( "array_overlaps" ).generateSqmExpression(
|
||||
asList( arrayExpression1, arrayExpression2 ),
|
||||
null,
|
||||
queryEngine
|
||||
) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmPredicate arrayOverlaps(SqmExpression<T[]> arrayExpression1, T[] array2) {
|
||||
return isTrue( getFunctionDescriptor( "array_overlaps" ).generateSqmExpression(
|
||||
asList( arrayExpression1, value( array2, arrayExpression1 ) ),
|
||||
null,
|
||||
queryEngine
|
||||
) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmPredicate arrayOverlaps(T[] array1, SqmExpression<T[]> arrayExpression2) {
|
||||
return isTrue( getFunctionDescriptor( "array_overlaps" ).generateSqmExpression(
|
||||
asList( value( array1, arrayExpression2 ), arrayExpression2 ),
|
||||
null,
|
||||
queryEngine
|
||||
) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmPredicate arrayOverlaps(T[] array1, T[] array2) {
|
||||
return isTrue( getFunctionDescriptor( "array_overlaps" ).generateSqmExpression(
|
||||
asList( value( array1 ), value( array2 ) ),
|
||||
null,
|
||||
queryEngine
|
||||
) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmPredicate arrayOverlapsNullable(
|
||||
SqmExpression<T[]> arrayExpression1,
|
||||
SqmExpression<T[]> arrayExpression2) {
|
||||
return isTrue( getFunctionDescriptor( "array_overlaps_nullable" ).generateSqmExpression(
|
||||
asList( arrayExpression1, arrayExpression2 ),
|
||||
null,
|
||||
queryEngine
|
||||
) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmPredicate arrayOverlapsNullable(SqmExpression<T[]> arrayExpression1, T[] array2) {
|
||||
return isTrue( getFunctionDescriptor( "array_overlaps_nullable" ).generateSqmExpression(
|
||||
asList( arrayExpression1, value( array2, arrayExpression1 ) ),
|
||||
null,
|
||||
queryEngine
|
||||
) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmPredicate arrayOverlapsNullable(T[] array1, SqmExpression<T[]> arrayExpression2) {
|
||||
return isTrue( getFunctionDescriptor( "array_overlaps_nullable" ).generateSqmExpression(
|
||||
asList( value( array1, arrayExpression2 ), arrayExpression2 ),
|
||||
null,
|
||||
queryEngine
|
||||
) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmPredicate arrayOverlapsNullable(T[] array1, T[] array2) {
|
||||
return isTrue( getFunctionDescriptor( "array_overlaps_nullable" ).generateSqmExpression(
|
||||
asList( value( array1 ), value( array2 ) ),
|
||||
null,
|
||||
queryEngine
|
||||
) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T> arrayGet(SqmExpression<T[]> arrayExpression, SqmExpression<Integer> indexExpression) {
|
||||
return getFunctionDescriptor( "array_get" ).generateSqmExpression(
|
||||
asList( arrayExpression, indexExpression ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T> arrayGet(SqmExpression<T[]> arrayExpression, Integer index) {
|
||||
return getFunctionDescriptor( "array_get" ).generateSqmExpression(
|
||||
asList( arrayExpression, value( index ) ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T> arrayGet(T[] array, SqmExpression<Integer> indexExpression) {
|
||||
return getFunctionDescriptor( "array_get" ).generateSqmExpression(
|
||||
asList( value( array ), indexExpression ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T> arrayGet(T[] array, Integer index) {
|
||||
return getFunctionDescriptor( "array_get" ).generateSqmExpression(
|
||||
asList( value( array ), value( index ) ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arraySet(
|
||||
SqmExpression<T[]> arrayExpression,
|
||||
SqmExpression<Integer> indexExpression,
|
||||
SqmExpression<T> elementExpression) {
|
||||
return getFunctionDescriptor( "array_set" ).generateSqmExpression(
|
||||
asList( arrayExpression, indexExpression, elementExpression ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arraySet(
|
||||
SqmExpression<T[]> arrayExpression,
|
||||
SqmExpression<Integer> indexExpression,
|
||||
T element) {
|
||||
return getFunctionDescriptor( "array_set" ).generateSqmExpression(
|
||||
asList( arrayExpression, indexExpression, value( element ) ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arraySet(
|
||||
SqmExpression<T[]> arrayExpression,
|
||||
Integer index,
|
||||
SqmExpression<T> elementExpression) {
|
||||
return getFunctionDescriptor( "array_set" ).generateSqmExpression(
|
||||
asList( arrayExpression, value( index ), elementExpression ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arraySet(SqmExpression<T[]> arrayExpression, Integer index, T element) {
|
||||
return getFunctionDescriptor( "array_set" ).generateSqmExpression(
|
||||
asList( arrayExpression, value( index ), value( element ) ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arraySet(
|
||||
T[] array,
|
||||
SqmExpression<Integer> indexExpression,
|
||||
SqmExpression<T> elementExpression) {
|
||||
return getFunctionDescriptor( "array_set" ).generateSqmExpression(
|
||||
asList( value( array ), indexExpression, elementExpression ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arraySet(T[] array, SqmExpression<Integer> indexExpression, T element) {
|
||||
return getFunctionDescriptor( "array_set" ).generateSqmExpression(
|
||||
asList( value( array ), indexExpression, value( element ) ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arraySet(T[] array, Integer index, SqmExpression<T> elementExpression) {
|
||||
return getFunctionDescriptor( "array_set" ).generateSqmExpression(
|
||||
asList( value( array ), value( index ), elementExpression ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arraySet(T[] array, Integer index, T element) {
|
||||
return getFunctionDescriptor( "array_set" ).generateSqmExpression(
|
||||
asList( value( array ), value( index ), value( element ) ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arrayRemove(SqmExpression<T[]> arrayExpression, SqmExpression<T> elementExpression) {
|
||||
return getFunctionDescriptor( "array_remove" ).generateSqmExpression(
|
||||
asList( arrayExpression, elementExpression ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arrayRemove(SqmExpression<T[]> arrayExpression, T element) {
|
||||
return getFunctionDescriptor( "array_remove" ).generateSqmExpression(
|
||||
asList( arrayExpression, value( element ) ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arrayRemove(T[] array, SqmExpression<T> elementExpression) {
|
||||
return getFunctionDescriptor( "array_remove" ).generateSqmExpression(
|
||||
asList( value( array ), elementExpression ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arrayRemove(T[] array, T element) {
|
||||
return getFunctionDescriptor( "array_remove" ).generateSqmExpression(
|
||||
asList( value( array ), value( element ) ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arrayRemoveIndex(
|
||||
SqmExpression<T[]> arrayExpression,
|
||||
SqmExpression<Integer> indexExpression) {
|
||||
return getFunctionDescriptor( "array_remove_index" ).generateSqmExpression(
|
||||
asList( arrayExpression, indexExpression ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arrayRemoveIndex(SqmExpression<T[]> arrayExpression, Integer index) {
|
||||
return getFunctionDescriptor( "array_remove_index" ).generateSqmExpression(
|
||||
asList( arrayExpression, value( index ) ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arrayRemoveIndex(T[] array, SqmExpression<Integer> indexExpression) {
|
||||
return getFunctionDescriptor( "array_remove_index" ).generateSqmExpression(
|
||||
asList( value( array ), indexExpression ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arrayRemoveIndex(T[] array, Integer index) {
|
||||
return getFunctionDescriptor( "array_remove_index" ).generateSqmExpression(
|
||||
asList( value( array ), value( index ) ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arraySlice(
|
||||
SqmExpression<T[]> arrayExpression,
|
||||
SqmExpression<Integer> lowerIndexExpression,
|
||||
SqmExpression<Integer> upperIndexExpression) {
|
||||
return getFunctionDescriptor( "array_slice" ).generateSqmExpression(
|
||||
asList( arrayExpression, lowerIndexExpression, upperIndexExpression ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arraySlice(
|
||||
SqmExpression<T[]> arrayExpression,
|
||||
SqmExpression<Integer> lowerIndexExpression,
|
||||
Integer upperIndex) {
|
||||
return getFunctionDescriptor( "array_slice" ).generateSqmExpression(
|
||||
asList( arrayExpression, lowerIndexExpression, value( upperIndex ) ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arraySlice(
|
||||
SqmExpression<T[]> arrayExpression,
|
||||
Integer lowerIndex,
|
||||
SqmExpression<Integer> upperIndexExpression) {
|
||||
return getFunctionDescriptor( "array_slice" ).generateSqmExpression(
|
||||
asList( arrayExpression, value( lowerIndex ), upperIndexExpression ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arraySlice(
|
||||
SqmExpression<T[]> arrayExpression,
|
||||
Integer lowerIndex,
|
||||
Integer upperIndex) {
|
||||
return getFunctionDescriptor( "array_slice" ).generateSqmExpression(
|
||||
asList( arrayExpression, value( lowerIndex ), value( upperIndex ) ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arraySlice(
|
||||
T[] array,
|
||||
SqmExpression<Integer> lowerIndexExpression,
|
||||
SqmExpression<Integer> upperIndexExpression) {
|
||||
return getFunctionDescriptor( "array_slice" ).generateSqmExpression(
|
||||
asList( value( array ), lowerIndexExpression, upperIndexExpression ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arraySlice(
|
||||
T[] array,
|
||||
SqmExpression<Integer> lowerIndexExpression,
|
||||
Integer upperIndex) {
|
||||
return getFunctionDescriptor( "array_slice" ).generateSqmExpression(
|
||||
asList( value( array ), lowerIndexExpression, value( upperIndex ) ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arraySlice(
|
||||
T[] array,
|
||||
Integer lowerIndex,
|
||||
SqmExpression<Integer> upperIndexExpression) {
|
||||
return getFunctionDescriptor( "array_slice" ).generateSqmExpression(
|
||||
asList( value( array ), value( lowerIndex ), upperIndexExpression ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arraySlice(T[] array, Integer lowerIndex, Integer upperIndex) {
|
||||
return getFunctionDescriptor( "array_slice" ).generateSqmExpression(
|
||||
asList( value( array ), value( lowerIndex ), value( upperIndex ) ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arrayReplace(
|
||||
SqmExpression<T[]> arrayExpression,
|
||||
SqmExpression<T> oldElementExpression,
|
||||
SqmExpression<T> newElementExpression) {
|
||||
return getFunctionDescriptor( "array_replace" ).generateSqmExpression(
|
||||
asList( arrayExpression, oldElementExpression, newElementExpression ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arrayReplace(
|
||||
SqmExpression<T[]> arrayExpression,
|
||||
SqmExpression<T> oldElementExpression,
|
||||
T newElement) {
|
||||
return getFunctionDescriptor( "array_replace" ).generateSqmExpression(
|
||||
asList( arrayExpression, oldElementExpression, value( newElement ) ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arrayReplace(
|
||||
SqmExpression<T[]> arrayExpression,
|
||||
T oldElement,
|
||||
SqmExpression<T> newElementExpression) {
|
||||
return getFunctionDescriptor( "array_replace" ).generateSqmExpression(
|
||||
asList( arrayExpression, value( oldElement ), newElementExpression ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arrayReplace(SqmExpression<T[]> arrayExpression, T oldElement, T newElement) {
|
||||
return getFunctionDescriptor( "array_replace" ).generateSqmExpression(
|
||||
asList( arrayExpression, value( oldElement ), value( newElement ) ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arrayReplace(
|
||||
T[] array,
|
||||
SqmExpression<T> oldElementExpression,
|
||||
SqmExpression<T> newElementExpression) {
|
||||
return getFunctionDescriptor( "array_replace" ).generateSqmExpression(
|
||||
asList( value( array ), oldElementExpression, newElementExpression ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arrayReplace(T[] array, SqmExpression<T> oldElementExpression, T newElement) {
|
||||
return getFunctionDescriptor( "array_replace" ).generateSqmExpression(
|
||||
asList( value( array ), oldElementExpression, value( newElement ) ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arrayReplace(T[] array, T oldElement, SqmExpression<T> newElementExpression) {
|
||||
return getFunctionDescriptor( "array_replace" ).generateSqmExpression(
|
||||
asList( value( array ), value( oldElement ), newElementExpression ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> SqmExpression<T[]> arrayReplace(T[] array, T oldElement, T newElement) {
|
||||
return getFunctionDescriptor( "array_replace" ).generateSqmExpression(
|
||||
asList( value( array ), value( oldElement ), value( newElement ) ),
|
||||
null,
|
||||
queryEngine
|
||||
);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user