diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8dc2cb462..21e7cb3aa 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -12,6 +12,9 @@ GitHub milestone: [https://github.com/mybatis/mybatis-dynamic-sql/issues?q=miles
2. Added the ability to specify a table alias on DELETE and UPDATE statements.
This is especially useful when working with a sub-query with an exists or not exists condition.
([#489](https://github.com/mybatis/mybatis-dynamic-sql/pull/489))
+3. Updated the Kotlin DSL to use Kotlin 1.7's new "definitely non-null" types where appropriate. This helps us to more
+ accurately represent the nullable/non-nullable expectations for API method calls.
+ ([#496](https://github.com/mybatis/mybatis-dynamic-sql/pull/496))
## Release 1.4.0 - March 3, 2022
diff --git a/pom.xml b/pom.xml
index 115294d7d..54741a889 100644
--- a/pom.xml
+++ b/pom.xml
@@ -230,6 +230,12 @@
true
+
+ org.jetbrains.kotlin
+ kotlin-compiler
+ ${kotlin.version}
+ test
+
org.junit.jupiter
junit-jupiter-api
diff --git a/src/main/java/org/mybatis/dynamic/sql/delete/DeleteDSL.java b/src/main/java/org/mybatis/dynamic/sql/delete/DeleteDSL.java
index eba241267..4c06507b9 100644
--- a/src/main/java/org/mybatis/dynamic/sql/delete/DeleteDSL.java
+++ b/src/main/java/org/mybatis/dynamic/sql/delete/DeleteDSL.java
@@ -59,7 +59,8 @@ public R build() {
return adapterFunction.apply(deleteModel);
}
- public static DeleteDSL deleteFrom(Function adapterFunction, SqlTable table, String tableAlias) {
+ public static DeleteDSL deleteFrom(Function adapterFunction, SqlTable table,
+ String tableAlias) {
return new DeleteDSL<>(table, tableAlias, adapterFunction);
}
diff --git a/src/main/java/org/mybatis/dynamic/sql/insert/render/DefaultInsertStatementProvider.java b/src/main/java/org/mybatis/dynamic/sql/insert/render/DefaultInsertStatementProvider.java
index 9cdc67302..1fc9a54ae 100644
--- a/src/main/java/org/mybatis/dynamic/sql/insert/render/DefaultInsertStatementProvider.java
+++ b/src/main/java/org/mybatis/dynamic/sql/insert/render/DefaultInsertStatementProvider.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2016-2021 the original author or authors.
+ * Copyright 2016-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,6 +17,8 @@
import java.util.Objects;
+import org.jetbrains.annotations.NotNull;
+
public class DefaultInsertStatementProvider implements InsertStatementProvider {
private final String insertStatement;
// need to keep both row and record for now so we don't break
@@ -37,6 +39,7 @@ public T getRecord() {
}
@Override
+ @NotNull
public T getRow() {
return row;
}
diff --git a/src/main/java/org/mybatis/dynamic/sql/insert/render/InsertStatementProvider.java b/src/main/java/org/mybatis/dynamic/sql/insert/render/InsertStatementProvider.java
index 65d31882d..b5bd1d68c 100644
--- a/src/main/java/org/mybatis/dynamic/sql/insert/render/InsertStatementProvider.java
+++ b/src/main/java/org/mybatis/dynamic/sql/insert/render/InsertStatementProvider.java
@@ -15,6 +15,8 @@
*/
package org.mybatis.dynamic.sql.insert.render;
+import org.jetbrains.annotations.NotNull;
+
public interface InsertStatementProvider {
/**
* Return the row associated with this insert statement.
@@ -30,6 +32,7 @@ public interface InsertStatementProvider {
*
* @return the row associated with this insert statement.
*/
+ @NotNull
T getRow();
/**
diff --git a/src/main/java/org/mybatis/dynamic/sql/update/render/SetPhraseVisitor.java b/src/main/java/org/mybatis/dynamic/sql/update/render/SetPhraseVisitor.java
index 0b2ef7359..de1937349 100644
--- a/src/main/java/org/mybatis/dynamic/sql/update/render/SetPhraseVisitor.java
+++ b/src/main/java/org/mybatis/dynamic/sql/update/render/SetPhraseVisitor.java
@@ -55,7 +55,8 @@ public SetPhraseVisitor(AtomicInteger sequence, RenderingStrategy renderingStrat
@Override
public Optional visit(NullMapping mapping) {
- return FragmentAndParameters.withFragment(mapping.mapColumn(aliasedColumnNameFunction) + " = null") //$NON-NLS-1$
+ return FragmentAndParameters
+ .withFragment(mapping.mapColumn(aliasedColumnNameFunction) + " = null") //$NON-NLS-1$
.buildOptional();
}
diff --git a/src/main/kotlin/org/mybatis/dynamic/sql/util/kotlin/GroupingCriteriaCollector.kt b/src/main/kotlin/org/mybatis/dynamic/sql/util/kotlin/GroupingCriteriaCollector.kt
index 2ccd6d4e4..5c3fdd697 100644
--- a/src/main/kotlin/org/mybatis/dynamic/sql/util/kotlin/GroupingCriteriaCollector.kt
+++ b/src/main/kotlin/org/mybatis/dynamic/sql/util/kotlin/GroupingCriteriaCollector.kt
@@ -243,7 +243,7 @@ class GroupingCriteriaCollector {
fun BindableColumn<*>.isNotNull() = invoke(org.mybatis.dynamic.sql.util.kotlin.elements.isNotNull())
- infix fun BindableColumn.isEqualTo(value: T) =
+ infix fun BindableColumn.isEqualTo(value: T & Any) =
invoke(org.mybatis.dynamic.sql.util.kotlin.elements.isEqualTo(value))
infix fun BindableColumn<*>.isEqualTo(subQuery: KotlinSubQueryBuilder.() -> Unit) =
@@ -252,10 +252,10 @@ class GroupingCriteriaCollector {
infix fun BindableColumn<*>.isEqualTo(column: BasicColumn) =
invoke(org.mybatis.dynamic.sql.util.kotlin.elements.isEqualTo(column))
- infix fun BindableColumn.isEqualToWhenPresent(value: T?) =
+ infix fun BindableColumn.isEqualToWhenPresent(value: T?) =
invoke(org.mybatis.dynamic.sql.util.kotlin.elements.isEqualToWhenPresent(value))
- infix fun BindableColumn.isNotEqualTo(value: T) =
+ infix fun BindableColumn.isNotEqualTo(value: T & Any) =
invoke(org.mybatis.dynamic.sql.util.kotlin.elements.isNotEqualTo(value))
infix fun BindableColumn<*>.isNotEqualTo(subQuery: KotlinSubQueryBuilder.() -> Unit) =
@@ -264,10 +264,10 @@ class GroupingCriteriaCollector {
infix fun BindableColumn<*>.isNotEqualTo(column: BasicColumn) =
invoke(org.mybatis.dynamic.sql.util.kotlin.elements.isNotEqualTo(column))
- infix fun BindableColumn.isNotEqualToWhenPresent(value: T?) =
+ infix fun BindableColumn.isNotEqualToWhenPresent(value: T?) =
invoke(org.mybatis.dynamic.sql.util.kotlin.elements.isNotEqualToWhenPresent(value))
- infix fun BindableColumn.isGreaterThan(value: T) =
+ infix fun BindableColumn.isGreaterThan(value: T & Any) =
invoke(org.mybatis.dynamic.sql.util.kotlin.elements.isGreaterThan(value))
infix fun BindableColumn<*>.isGreaterThan(subQuery: KotlinSubQueryBuilder.() -> Unit) =
@@ -276,10 +276,10 @@ class GroupingCriteriaCollector {
infix fun BindableColumn<*>.isGreaterThan(column: BasicColumn) =
invoke(org.mybatis.dynamic.sql.util.kotlin.elements.isGreaterThan(column))
- infix fun BindableColumn.isGreaterThanWhenPresent(value: T?) =
+ infix fun BindableColumn.isGreaterThanWhenPresent(value: T?) =
invoke(org.mybatis.dynamic.sql.util.kotlin.elements.isGreaterThanWhenPresent(value))
- infix fun BindableColumn.isGreaterThanOrEqualTo(value: T) =
+ infix fun BindableColumn.isGreaterThanOrEqualTo(value: T & Any) =
invoke(org.mybatis.dynamic.sql.util.kotlin.elements.isGreaterThanOrEqualTo(value))
infix fun BindableColumn<*>.isGreaterThanOrEqualTo(subQuery: KotlinSubQueryBuilder.() -> Unit) =
@@ -288,10 +288,10 @@ class GroupingCriteriaCollector {
infix fun BindableColumn<*>.isGreaterThanOrEqualTo(column: BasicColumn) =
invoke(org.mybatis.dynamic.sql.util.kotlin.elements.isGreaterThanOrEqualTo(column))
- infix fun BindableColumn.isGreaterThanOrEqualToWhenPresent(value: T?) =
+ infix fun BindableColumn.isGreaterThanOrEqualToWhenPresent(value: T?) =
invoke(org.mybatis.dynamic.sql.util.kotlin.elements.isGreaterThanOrEqualToWhenPresent(value))
- infix fun BindableColumn.isLessThan(value: T) =
+ infix fun BindableColumn.isLessThan(value: T & Any) =
invoke(org.mybatis.dynamic.sql.util.kotlin.elements.isLessThan(value))
infix fun BindableColumn<*>.isLessThan(subQuery: KotlinSubQueryBuilder.() -> Unit) =
@@ -300,10 +300,10 @@ class GroupingCriteriaCollector {
infix fun BindableColumn<*>.isLessThan(column: BasicColumn) =
invoke(org.mybatis.dynamic.sql.util.kotlin.elements.isLessThan(column))
- infix fun BindableColumn.isLessThanWhenPresent(value: T?) =
+ infix fun BindableColumn.isLessThanWhenPresent(value: T?) =
invoke(org.mybatis.dynamic.sql.util.kotlin.elements.isLessThanWhenPresent(value))
- infix fun BindableColumn.isLessThanOrEqualTo(value: T) =
+ infix fun BindableColumn.isLessThanOrEqualTo(value: T & Any) =
invoke(org.mybatis.dynamic.sql.util.kotlin.elements.isLessThanOrEqualTo(value))
infix fun BindableColumn<*>.isLessThanOrEqualTo(subQuery: KotlinSubQueryBuilder.() -> Unit) =
@@ -312,66 +312,66 @@ class GroupingCriteriaCollector {
infix fun BindableColumn<*>.isLessThanOrEqualTo(column: BasicColumn) =
invoke(org.mybatis.dynamic.sql.util.kotlin.elements.isLessThanOrEqualTo(column))
- infix fun BindableColumn.isLessThanOrEqualToWhenPresent(value: T?) =
+ infix fun BindableColumn.isLessThanOrEqualToWhenPresent(value: T?) =
invoke(org.mybatis.dynamic.sql.util.kotlin.elements.isLessThanOrEqualToWhenPresent(value))
- fun BindableColumn.isIn(vararg values: T) = isIn(values.asList())
+ fun BindableColumn.isIn(vararg values: T & Any) = isIn(values.asList())
- infix fun BindableColumn.isIn(values: Collection) =
+ infix fun BindableColumn.isIn(values: Collection) =
invoke(org.mybatis.dynamic.sql.util.kotlin.elements.isIn(values))
infix fun BindableColumn<*>.isIn(subQuery: KotlinSubQueryBuilder.() -> Unit) =
invoke(org.mybatis.dynamic.sql.util.kotlin.elements.isIn(subQuery))
- fun BindableColumn.isInWhenPresent(vararg values: T?) = isInWhenPresent(values.asList())
+ fun BindableColumn.isInWhenPresent(vararg values: T?) = isInWhenPresent(values.asList())
- infix fun BindableColumn.isInWhenPresent(values: Collection?) =
+ infix fun BindableColumn.isInWhenPresent(values: Collection?) =
invoke(org.mybatis.dynamic.sql.util.kotlin.elements.isInWhenPresent(values))
- fun BindableColumn.isNotIn(vararg values: T) = isNotIn(values.asList())
+ fun BindableColumn.isNotIn(vararg values: T & Any) = isNotIn(values.asList())
- infix fun BindableColumn.isNotIn(values: Collection) =
+ infix fun BindableColumn.isNotIn(values: Collection) =
invoke(org.mybatis.dynamic.sql.util.kotlin.elements.isNotIn(values))
infix fun BindableColumn<*>.isNotIn(subQuery: KotlinSubQueryBuilder.() -> Unit) =
invoke(org.mybatis.dynamic.sql.util.kotlin.elements.isNotIn(subQuery))
- fun BindableColumn.isNotInWhenPresent(vararg values: T?) = isNotInWhenPresent(values.asList())
+ fun BindableColumn.isNotInWhenPresent(vararg values: T?) = isNotInWhenPresent(values.asList())
- infix fun BindableColumn.isNotInWhenPresent(values: Collection?) =
+ infix fun BindableColumn.isNotInWhenPresent(values: Collection?) =
invoke(org.mybatis.dynamic.sql.util.kotlin.elements.isNotInWhenPresent(values))
- infix fun BindableColumn.isBetween(value1: T) =
- SecondValueCollector {
+ infix fun BindableColumn.isBetween(value1: T & Any) =
+ SecondValueCollector {
invoke(org.mybatis.dynamic.sql.util.kotlin.elements.isBetween(value1).and(it))
}
- infix fun BindableColumn.isBetweenWhenPresent(value1: T?) =
+ infix fun BindableColumn.isBetweenWhenPresent(value1: T?) =
NullableSecondValueCollector {
invoke(org.mybatis.dynamic.sql.util.kotlin.elements.isBetweenWhenPresent(value1).and(it))
}
- infix fun BindableColumn.isNotBetween(value1: T) =
- SecondValueCollector {
+ infix fun BindableColumn.isNotBetween(value1: T & Any) =
+ SecondValueCollector {
invoke(org.mybatis.dynamic.sql.util.kotlin.elements.isNotBetween(value1).and(it))
}
- infix fun BindableColumn.isNotBetweenWhenPresent(value1: T?) =
+ infix fun BindableColumn.isNotBetweenWhenPresent(value1: T?) =
NullableSecondValueCollector {
invoke(org.mybatis.dynamic.sql.util.kotlin.elements.isNotBetweenWhenPresent(value1).and(it))
}
// for string columns, but generic for columns with type handlers
- infix fun BindableColumn.isLike(value: T) =
+ infix fun BindableColumn.isLike(value: T & Any) =
invoke(org.mybatis.dynamic.sql.util.kotlin.elements.isLike(value))
- infix fun BindableColumn.isLikeWhenPresent(value: T?) =
+ infix fun BindableColumn.isLikeWhenPresent(value: T?) =
invoke(org.mybatis.dynamic.sql.util.kotlin.elements.isLikeWhenPresent(value))
- infix fun BindableColumn.isNotLike(value: T) =
+ infix fun BindableColumn.isNotLike(value: T & Any) =
invoke(org.mybatis.dynamic.sql.util.kotlin.elements.isNotLike(value))
- infix fun BindableColumn.isNotLikeWhenPresent(value: T?) =
+ infix fun BindableColumn.isNotLikeWhenPresent(value: T?) =
invoke(org.mybatis.dynamic.sql.util.kotlin.elements.isNotLikeWhenPresent(value))
// shortcuts for booleans
diff --git a/src/main/kotlin/org/mybatis/dynamic/sql/util/kotlin/KotlinBatchInsertBuilder.kt b/src/main/kotlin/org/mybatis/dynamic/sql/util/kotlin/KotlinBatchInsertBuilder.kt
index 0f278cd17..84e066dfb 100644
--- a/src/main/kotlin/org/mybatis/dynamic/sql/util/kotlin/KotlinBatchInsertBuilder.kt
+++ b/src/main/kotlin/org/mybatis/dynamic/sql/util/kotlin/KotlinBatchInsertBuilder.kt
@@ -25,7 +25,7 @@ import org.mybatis.dynamic.sql.util.Buildable
typealias KotlinBatchInsertCompleter = KotlinBatchInsertBuilder.() -> Unit
@MyBatisDslMarker
-class KotlinBatchInsertBuilder (private val rows: Collection): Buildable> {
+class KotlinBatchInsertBuilder (private val rows: Collection): Buildable> {
private var table: SqlTable? = null
private val columnMappings = mutableListOf()
@@ -33,7 +33,7 @@ class KotlinBatchInsertBuilder (private val rows: Collection): Buildable map(column: SqlColumn) = MultiRowInsertColumnMapCompleter(column) {
+ fun map(column: SqlColumn) = MultiRowInsertColumnMapCompleter(column) {
columnMappings.add(it)
}
diff --git a/src/main/kotlin/org/mybatis/dynamic/sql/util/kotlin/KotlinGeneralInsertBuilder.kt b/src/main/kotlin/org/mybatis/dynamic/sql/util/kotlin/KotlinGeneralInsertBuilder.kt
index b7d402bbf..4562680af 100644
--- a/src/main/kotlin/org/mybatis/dynamic/sql/util/kotlin/KotlinGeneralInsertBuilder.kt
+++ b/src/main/kotlin/org/mybatis/dynamic/sql/util/kotlin/KotlinGeneralInsertBuilder.kt
@@ -29,7 +29,7 @@ class KotlinGeneralInsertBuilder(private val table: SqlTable) : Buildable()
- fun set(column: SqlColumn) = GeneralInsertColumnSetCompleter(column) {
+ fun set(column: SqlColumn) = GeneralInsertColumnSetCompleter(column) {
columnMappings.add(it)
}
diff --git a/src/main/kotlin/org/mybatis/dynamic/sql/util/kotlin/KotlinInsertBuilder.kt b/src/main/kotlin/org/mybatis/dynamic/sql/util/kotlin/KotlinInsertBuilder.kt
index ca2bee86e..fb7df5d38 100644
--- a/src/main/kotlin/org/mybatis/dynamic/sql/util/kotlin/KotlinInsertBuilder.kt
+++ b/src/main/kotlin/org/mybatis/dynamic/sql/util/kotlin/KotlinInsertBuilder.kt
@@ -25,7 +25,7 @@ import org.mybatis.dynamic.sql.util.Buildable
typealias KotlinInsertCompleter = KotlinInsertBuilder.() -> Unit
@MyBatisDslMarker
-class KotlinInsertBuilder (private val row: T): Buildable> {
+class KotlinInsertBuilder (private val row: T): Buildable> {
private var table: SqlTable? = null
private val columnMappings = mutableListOf()
@@ -33,7 +33,7 @@ class KotlinInsertBuilder (private val row: T): Buildable> {
this.table = table
}
- fun map(column: SqlColumn) = SingleRowInsertColumnMapCompleter(column) {
+ fun map(column: SqlColumn) = SingleRowInsertColumnMapCompleter(column) {
columnMappings.add(it)
}
diff --git a/src/main/kotlin/org/mybatis/dynamic/sql/util/kotlin/KotlinInsertColumnMapCompleters.kt b/src/main/kotlin/org/mybatis/dynamic/sql/util/kotlin/KotlinInsertColumnMapCompleters.kt
index bd6012dae..cd2fa81d0 100644
--- a/src/main/kotlin/org/mybatis/dynamic/sql/util/kotlin/KotlinInsertColumnMapCompleters.kt
+++ b/src/main/kotlin/org/mybatis/dynamic/sql/util/kotlin/KotlinInsertColumnMapCompleters.kt
@@ -27,7 +27,7 @@ import org.mybatis.dynamic.sql.util.ValueOrNullMapping
import org.mybatis.dynamic.sql.util.ValueWhenPresentMapping
@MyBatisDslMarker
-sealed class AbstractInsertColumnMapCompleter(
+sealed class AbstractInsertColumnMapCompleter(
internal val column: SqlColumn,
internal val mappingConsumer: (AbstractColumnMapping) -> Unit) {
@@ -38,7 +38,7 @@ sealed class AbstractInsertColumnMapCompleter(
infix fun toStringConstant(constant: String) = mappingConsumer.invoke(StringConstantMapping.of(column, constant))
}
-class MultiRowInsertColumnMapCompleter(
+class MultiRowInsertColumnMapCompleter(
column: SqlColumn,
mappingConsumer: (AbstractColumnMapping) -> Unit)
: AbstractInsertColumnMapCompleter(column, mappingConsumer) {
@@ -46,7 +46,7 @@ class MultiRowInsertColumnMapCompleter(
infix fun toProperty(property: String) = mappingConsumer.invoke(PropertyMapping.of(column, property))
}
-class SingleRowInsertColumnMapCompleter(
+class SingleRowInsertColumnMapCompleter(
column: SqlColumn,
mappingConsumer: (AbstractColumnMapping) -> Unit)
: AbstractInsertColumnMapCompleter(column, mappingConsumer) {
@@ -57,14 +57,14 @@ class SingleRowInsertColumnMapCompleter(
mappingConsumer.invoke(PropertyWhenPresentMapping.of(column, property, valueSupplier))
}
-class GeneralInsertColumnSetCompleter(
+class GeneralInsertColumnSetCompleter(
column: SqlColumn,
mappingConsumer: (AbstractColumnMapping) -> Unit)
: AbstractInsertColumnMapCompleter(column, mappingConsumer) {
- infix fun toValue(value: T) = toValue { value }
+ infix fun toValue(value: T & Any) = toValue { value }
- infix fun toValue(value: () -> T) = mappingConsumer.invoke(ValueMapping.of(column, value))
+ infix fun toValue(value: () -> T & Any) = mappingConsumer.invoke(ValueMapping.of(column, value))
infix fun toValueOrNull(value: T?) = toValueOrNull { value }
diff --git a/src/main/kotlin/org/mybatis/dynamic/sql/util/kotlin/KotlinMultiRowInsertBuilder.kt b/src/main/kotlin/org/mybatis/dynamic/sql/util/kotlin/KotlinMultiRowInsertBuilder.kt
index 71f79f2a7..3a7a48a7f 100644
--- a/src/main/kotlin/org/mybatis/dynamic/sql/util/kotlin/KotlinMultiRowInsertBuilder.kt
+++ b/src/main/kotlin/org/mybatis/dynamic/sql/util/kotlin/KotlinMultiRowInsertBuilder.kt
@@ -25,7 +25,7 @@ import org.mybatis.dynamic.sql.util.Buildable
typealias KotlinMultiRowInsertCompleter = KotlinMultiRowInsertBuilder.() -> Unit
@MyBatisDslMarker
-class KotlinMultiRowInsertBuilder (private val rows: Collection): Buildable> {
+class KotlinMultiRowInsertBuilder (private val rows: Collection): Buildable> {
private var table: SqlTable? = null
private val columnMappings = mutableListOf()
@@ -33,7 +33,7 @@ class KotlinMultiRowInsertBuilder (private val rows: Collection): Buildabl
this.table = table
}
- fun map(column: SqlColumn) = MultiRowInsertColumnMapCompleter(column) {
+ fun map(column: SqlColumn) = MultiRowInsertColumnMapCompleter(column) {
columnMappings.add(it)
}
diff --git a/src/main/kotlin/org/mybatis/dynamic/sql/util/kotlin/KotlinUpdateBuilder.kt b/src/main/kotlin/org/mybatis/dynamic/sql/util/kotlin/KotlinUpdateBuilder.kt
index 17933b69f..83f78c928 100644
--- a/src/main/kotlin/org/mybatis/dynamic/sql/util/kotlin/KotlinUpdateBuilder.kt
+++ b/src/main/kotlin/org/mybatis/dynamic/sql/util/kotlin/KotlinUpdateBuilder.kt
@@ -50,9 +50,9 @@ class KotlinUpdateBuilder(private val dsl: UpdateDSL) :
set(column).equalToStringConstant(constant)
}
- infix fun equalTo(value: T): Unit = equalTo { value }
+ infix fun equalTo(value: T & Any): Unit = equalTo { value }
- infix fun equalTo(value: () -> T): Unit =
+ infix fun equalTo(value: () -> T & Any): Unit =
applyToDsl {
set(column).equalTo(value)
}
diff --git a/src/main/kotlin/org/mybatis/dynamic/sql/util/kotlin/elements/SqlElements.kt b/src/main/kotlin/org/mybatis/dynamic/sql/util/kotlin/elements/SqlElements.kt
index 72e04a1bb..6190275cb 100644
--- a/src/main/kotlin/org/mybatis/dynamic/sql/util/kotlin/elements/SqlElements.kt
+++ b/src/main/kotlin/org/mybatis/dynamic/sql/util/kotlin/elements/SqlElements.kt
@@ -182,34 +182,34 @@ fun exists(subQuery: KotlinSubQueryBuilder.() -> Unit): ExistsPredicate =
fun notExists(subQuery: KotlinSubQueryBuilder.() -> Unit): ExistsPredicate =
SqlBuilder.notExists(KotlinSubQueryBuilder().apply(subQuery))
-fun isEqualTo(value: T): IsEqualTo = SqlBuilder.isEqualTo(value)
+fun isEqualTo(value: T & Any): IsEqualTo = SqlBuilder.isEqualTo(value)
fun isEqualTo(subQuery: KotlinSubQueryBuilder.() -> Unit): IsEqualToWithSubselect =
SqlBuilder.isEqualTo(KotlinSubQueryBuilder().apply(subQuery))
fun isEqualTo(column: BasicColumn): IsEqualToColumn = SqlBuilder.isEqualTo(column)
-fun isEqualToWhenPresent(value: T?): IsEqualTo = SqlBuilder.isEqualToWhenPresent(value)
+fun isEqualToWhenPresent(value: T?): IsEqualTo = SqlBuilder.isEqualToWhenPresent(value)
-fun isNotEqualTo(value: T): IsNotEqualTo = SqlBuilder.isNotEqualTo(value)
+fun isNotEqualTo(value: T & Any): IsNotEqualTo = SqlBuilder.isNotEqualTo(value)
fun isNotEqualTo(subQuery: KotlinSubQueryBuilder.() -> Unit): IsNotEqualToWithSubselect =
SqlBuilder.isNotEqualTo(KotlinSubQueryBuilder().apply(subQuery))
fun isNotEqualTo(column: BasicColumn): IsNotEqualToColumn = SqlBuilder.isNotEqualTo(column)
-fun isNotEqualToWhenPresent(value: T?): IsNotEqualTo = SqlBuilder.isNotEqualToWhenPresent(value)
+fun isNotEqualToWhenPresent(value: T?): IsNotEqualTo = SqlBuilder.isNotEqualToWhenPresent(value)
-fun isGreaterThan(value: T): IsGreaterThan = SqlBuilder.isGreaterThan(value)
+fun isGreaterThan(value: T & Any): IsGreaterThan = SqlBuilder.isGreaterThan(value)
fun isGreaterThan(subQuery: KotlinSubQueryBuilder.() -> Unit): IsGreaterThanWithSubselect =
SqlBuilder.isGreaterThan(KotlinSubQueryBuilder().apply(subQuery))
fun isGreaterThan(column: BasicColumn): IsGreaterThanColumn = SqlBuilder.isGreaterThan(column)
-fun isGreaterThanWhenPresent(value: T?): IsGreaterThan = SqlBuilder.isGreaterThanWhenPresent(value)
+fun isGreaterThanWhenPresent(value: T?): IsGreaterThan = SqlBuilder.isGreaterThanWhenPresent(value)
-fun isGreaterThanOrEqualTo(value: T): IsGreaterThanOrEqualTo = SqlBuilder.isGreaterThanOrEqualTo(value)
+fun isGreaterThanOrEqualTo(value: T & Any): IsGreaterThanOrEqualTo = SqlBuilder.isGreaterThanOrEqualTo(value)
fun isGreaterThanOrEqualTo(subQuery: KotlinSubQueryBuilder.() -> Unit): IsGreaterThanOrEqualToWithSubselect =
SqlBuilder.isGreaterThanOrEqualTo(KotlinSubQueryBuilder().apply(subQuery))
@@ -217,67 +217,67 @@ fun isGreaterThanOrEqualTo(subQuery: KotlinSubQueryBuilder.() -> Unit): IsGr
fun isGreaterThanOrEqualTo(column: BasicColumn): IsGreaterThanOrEqualToColumn =
SqlBuilder.isGreaterThanOrEqualTo(column)
-fun isGreaterThanOrEqualToWhenPresent(value: T?): IsGreaterThanOrEqualTo =
+fun isGreaterThanOrEqualToWhenPresent(value: T?): IsGreaterThanOrEqualTo =
SqlBuilder.isGreaterThanOrEqualToWhenPresent(value)
-fun