[jOOQ/jOOQ#16965] org.jooq.impl.Alias not Serializable, due to Lambda
wrapInParantheses
This commit is contained in:
parent
021dff0c52
commit
8085a92d2c
@ -141,13 +141,13 @@ final class Alias<Q extends QueryPart> extends AbstractQueryPart implements UEmp
|
||||
final Q wrapping;
|
||||
final Name alias;
|
||||
final Name[] fieldAliases;
|
||||
final Predicate<Context<?>> wrapInParentheses;
|
||||
final boolean wrapInParentheses;
|
||||
|
||||
Alias(Q wrapped, Q wrapping, Name alias) {
|
||||
this(wrapped, wrapping, alias, null, c -> false);
|
||||
this(wrapped, wrapping, alias, null, false);
|
||||
}
|
||||
|
||||
Alias(Q wrapped, Q wrapping, Name alias, Name[] fieldAliases, Predicate<Context<?>> wrapInParentheses) {
|
||||
Alias(Q wrapped, Q wrapping, Name alias, Name[] fieldAliases, boolean wrapInParentheses) {
|
||||
this.wrapped = wrapped;
|
||||
this.wrapping = wrapping;
|
||||
this.alias = alias;
|
||||
@ -411,12 +411,10 @@ final class Alias<Q extends QueryPart> extends AbstractQueryPart implements UEmp
|
||||
}
|
||||
|
||||
private final void toSQLWrapped(Context<?> ctx) {
|
||||
boolean wrap = wrapInParentheses.test(ctx);
|
||||
|
||||
if (wrap)
|
||||
ctx.data(DATA_WRAP_DERIVED_TABLES_IN_PARENTHESES, false, c -> toSQLWrapped(c, wrap));
|
||||
if (wrapInParentheses)
|
||||
ctx.data(DATA_WRAP_DERIVED_TABLES_IN_PARENTHESES, false, c -> toSQLWrapped(c, wrapInParentheses));
|
||||
else
|
||||
toSQLWrapped(ctx, wrap);
|
||||
toSQLWrapped(ctx, wrapInParentheses);
|
||||
}
|
||||
|
||||
private final void toSQLWrapped(Context<?> ctx, boolean wrap) {
|
||||
|
||||
@ -108,12 +108,12 @@ final class AliasedSelect<R extends Record> extends AbstractTable<R> implements
|
||||
else
|
||||
return query.asTable(alias, aliases);
|
||||
else
|
||||
return new TableAlias<>(this, alias, c -> true);
|
||||
return new TableAlias<>(this, alias, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Table<R> as(Name alias, Name... fieldAliases) {
|
||||
return new TableAlias<>(this, alias, fieldAliases, c -> true);
|
||||
return new TableAlias<>(this, alias, fieldAliases, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -86,12 +86,12 @@ class DerivedTable<R extends Record> extends AbstractTable<R> implements QOM.Der
|
||||
|
||||
@Override
|
||||
public final Table<R> as(Name alias) {
|
||||
return new TableAlias<>(this, alias, c -> true);
|
||||
return new TableAlias<>(this, alias, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Table<R> as(Name alias, Name... fieldAliases) {
|
||||
return new TableAlias<>(this, alias, fieldAliases, c -> true);
|
||||
return new TableAlias<>(this, alias, fieldAliases, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -717,12 +717,12 @@ abstract class JoinTable<J extends JoinTable<J>> extends AbstractJoinTable<J> {
|
||||
|
||||
@Override
|
||||
public final Table<Record> as(Name alias) {
|
||||
return new TableAlias<>(this, alias, c -> true);
|
||||
return new TableAlias<>(this, alias, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Table<Record> as(Name alias, Name... fieldAliases) {
|
||||
return new TableAlias<>(this, alias, fieldAliases, c -> true);
|
||||
return new TableAlias<>(this, alias, fieldAliases, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -37,6 +37,9 @@
|
||||
*/
|
||||
package org.jooq.impl;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.ObjectOutputStream;
|
||||
import java.io.Serializable;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
/**
|
||||
@ -60,14 +63,14 @@ import java.util.function.Supplier;
|
||||
*
|
||||
* @author Lukas Eder
|
||||
*/
|
||||
final class Lazy<T> {
|
||||
final class Lazy<T> implements Serializable {
|
||||
|
||||
static <T> Lazy<T> of(Supplier<? extends T> supplier) {
|
||||
return new Lazy<>(supplier);
|
||||
}
|
||||
|
||||
private final Supplier<? extends T> supplier;
|
||||
private volatile T value;
|
||||
private transient Supplier<? extends T> supplier;
|
||||
private volatile T value;
|
||||
|
||||
private Lazy(Supplier<? extends T> supplier) {
|
||||
this.supplier = supplier;
|
||||
@ -84,4 +87,10 @@ final class Lazy<T> {
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
private void writeObject(ObjectOutputStream oos) throws IOException {
|
||||
get();
|
||||
|
||||
oos.defaultWriteObject();
|
||||
}
|
||||
}
|
||||
|
||||
@ -74,18 +74,18 @@ implements
|
||||
transient FieldsImpl<R> aliasedFields;
|
||||
|
||||
TableAlias(Table<R> table, Name alias) {
|
||||
this(table, alias, null, c -> false);
|
||||
this(table, alias, null, false);
|
||||
}
|
||||
|
||||
TableAlias(Table<R> table, Name alias, Predicate<Context<?>> wrapInParentheses) {
|
||||
TableAlias(Table<R> table, Name alias, boolean wrapInParentheses) {
|
||||
this(table, alias, null, wrapInParentheses);
|
||||
}
|
||||
|
||||
TableAlias(Table<R> table, Name alias, Name[] fieldAliases) {
|
||||
this(table, alias, fieldAliases, c -> false);
|
||||
this(table, alias, fieldAliases, false);
|
||||
}
|
||||
|
||||
TableAlias(Table<R> table, Name alias, Name[] fieldAliases, Predicate<Context<?>> wrapInParentheses) {
|
||||
TableAlias(Table<R> table, Name alias, Name[] fieldAliases, boolean wrapInParentheses) {
|
||||
super(table.getOptions(), alias, table.getSchema());
|
||||
|
||||
this.alias = new Alias<>(table, this, alias, fieldAliases, wrapInParentheses);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user