|
|
|
@ -15,8 +15,6 @@ |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
package org.springframework.data.relational.core.dialect; |
|
|
|
package org.springframework.data.relational.core.dialect; |
|
|
|
|
|
|
|
|
|
|
|
import lombok.RequiredArgsConstructor; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.util.OptionalLong; |
|
|
|
import java.util.OptionalLong; |
|
|
|
import java.util.function.Function; |
|
|
|
import java.util.function.Function; |
|
|
|
|
|
|
|
|
|
|
|
@ -74,8 +72,7 @@ public abstract class AbstractDialect implements Dialect { |
|
|
|
Function<Select, ? extends CharSequence> afterOrderByLimit = getAfterOrderByLimit(); |
|
|
|
Function<Select, ? extends CharSequence> afterOrderByLimit = getAfterOrderByLimit(); |
|
|
|
Function<Select, ? extends CharSequence> afterOrderByLock = getAfterOrderByLock(); |
|
|
|
Function<Select, ? extends CharSequence> afterOrderByLock = getAfterOrderByLock(); |
|
|
|
|
|
|
|
|
|
|
|
return select -> String.valueOf(afterOrderByLimit.apply(select)) + |
|
|
|
return select -> String.valueOf(afterOrderByLimit.apply(select)) + afterOrderByLock.apply(select); |
|
|
|
afterOrderByLock.apply(select); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private Function<Select, ? extends CharSequence> getAfterOrderByLimit() { |
|
|
|
private Function<Select, ? extends CharSequence> getAfterOrderByLimit() { |
|
|
|
@ -109,8 +106,7 @@ public abstract class AbstractDialect implements Dialect { |
|
|
|
private final Function<Select, ? extends CharSequence> afterFromTable; |
|
|
|
private final Function<Select, ? extends CharSequence> afterFromTable; |
|
|
|
private final Function<Select, ? extends CharSequence> afterOrderBy; |
|
|
|
private final Function<Select, ? extends CharSequence> afterOrderBy; |
|
|
|
|
|
|
|
|
|
|
|
DialectSelectRenderContext( |
|
|
|
DialectSelectRenderContext(Function<Select, ? extends CharSequence> afterFromTable, |
|
|
|
Function<Select, ? extends CharSequence> afterFromTable, |
|
|
|
|
|
|
|
Function<Select, ? extends CharSequence> afterOrderBy) { |
|
|
|
Function<Select, ? extends CharSequence> afterOrderBy) { |
|
|
|
|
|
|
|
|
|
|
|
this.afterFromTable = afterFromTable; |
|
|
|
this.afterFromTable = afterFromTable; |
|
|
|
@ -139,11 +135,14 @@ public abstract class AbstractDialect implements Dialect { |
|
|
|
/** |
|
|
|
/** |
|
|
|
* After {@code ORDER BY} function rendering the {@link LimitClause}. |
|
|
|
* After {@code ORDER BY} function rendering the {@link LimitClause}. |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
@RequiredArgsConstructor |
|
|
|
|
|
|
|
static class AfterOrderByLimitRenderFunction implements Function<Select, CharSequence> { |
|
|
|
static class AfterOrderByLimitRenderFunction implements Function<Select, CharSequence> { |
|
|
|
|
|
|
|
|
|
|
|
private final LimitClause clause; |
|
|
|
private final LimitClause clause; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public AfterOrderByLimitRenderFunction(LimitClause clause) { |
|
|
|
|
|
|
|
this.clause = clause; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/* |
|
|
|
/* |
|
|
|
* (non-Javadoc) |
|
|
|
* (non-Javadoc) |
|
|
|
* @see java.util.function.Function#apply(java.lang.Object) |
|
|
|
* @see java.util.function.Function#apply(java.lang.Object) |
|
|
|
@ -173,11 +172,14 @@ public abstract class AbstractDialect implements Dialect { |
|
|
|
/** |
|
|
|
/** |
|
|
|
* {@code LOCK} function rendering the {@link LockClause}. |
|
|
|
* {@code LOCK} function rendering the {@link LockClause}. |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
@RequiredArgsConstructor |
|
|
|
|
|
|
|
static class LockRenderFunction implements Function<Select, CharSequence> { |
|
|
|
static class LockRenderFunction implements Function<Select, CharSequence> { |
|
|
|
|
|
|
|
|
|
|
|
private final LockClause clause; |
|
|
|
private final LockClause clause; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public LockRenderFunction(LockClause clause) { |
|
|
|
|
|
|
|
this.clause = clause; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/* |
|
|
|
/* |
|
|
|
* (non-Javadoc) |
|
|
|
* (non-Javadoc) |
|
|
|
* @see java.util.function.Function#apply(java.lang.Object) |
|
|
|
* @see java.util.function.Function#apply(java.lang.Object) |
|
|
|
@ -198,7 +200,6 @@ public abstract class AbstractDialect implements Dialect { |
|
|
|
/** |
|
|
|
/** |
|
|
|
* Prepends a non-empty rendering result with a leading whitespace, |
|
|
|
* Prepends a non-empty rendering result with a leading whitespace, |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
@RequiredArgsConstructor |
|
|
|
|
|
|
|
enum PrependWithLeadingWhitespace implements Function<CharSequence, CharSequence> { |
|
|
|
enum PrependWithLeadingWhitespace implements Function<CharSequence, CharSequence> { |
|
|
|
|
|
|
|
|
|
|
|
INSTANCE; |
|
|
|
INSTANCE; |
|
|
|
|