File tree Expand file tree Collapse file tree 5 files changed +27
-23
lines changed
main/kotlin/org/mybatis/dynamic/sql/util/kotlin
test/kotlin/examples/kotlin/mybatis3 Expand file tree Collapse file tree 5 files changed +27
-23
lines changed Original file line number Diff line number Diff line change @@ -417,6 +417,27 @@ class GroupingCriteriaCollector : SubCriteriaCollector() {
417
417
418
418
infix fun BindableColumn<String>.isNotInCaseInsensitiveWhenPresent (values : Collection <String ?>? ) =
419
419
invoke(org.mybatis.dynamic .sql.util.kotlin.elements.isNotInCaseInsensitiveWhenPresent(values))
420
+
421
+ companion object {
422
+ fun having (receiver : GroupingCriteriaReceiver ): GroupingCriteriaReceiver = receiver
423
+
424
+ /* *
425
+ * Function for code simplification. This allows creation of an independent where clause
426
+ * that can be reused in different statements. For example:
427
+ *
428
+ * val whereClause = where { id isEqualTo 3 }
429
+ *
430
+ * val rows = countFrom(foo) {
431
+ * where(whereClause)
432
+ * }
433
+ *
434
+ * Use of this function is optional. You can also write code like this:
435
+ *
436
+ * val whereClause: GroupingCriteriaReceiver = { id isEqualTo 3 }
437
+ *
438
+ */
439
+ fun where (receiver : GroupingCriteriaReceiver ): GroupingCriteriaReceiver = receiver
440
+ }
420
441
}
421
442
422
443
class SecondValueCollector <T > (private val consumer : (T ) -> Unit ) {
Original file line number Diff line number Diff line change @@ -25,10 +25,10 @@ import org.mybatis.dynamic.sql.where.AbstractWhereStarter
25
25
@DslMarker
26
26
annotation class MyBatisDslMarker
27
27
28
- @Deprecated(" Please use booleanExpression " )
28
+ @Deprecated(" Please use GroupingCriteriaCollector.where " )
29
29
typealias WhereApplier = KotlinBaseBuilder <* >.() -> Unit
30
30
31
- @Deprecated(" Please use booleanExpression " )
31
+ @Deprecated(" Please use GroupingCriteriaCollector.where " )
32
32
fun WhereApplier.andThen (after : WhereApplier ): WhereApplier = {
33
33
invoke(this )
34
34
after(this )
Original file line number Diff line number Diff line change @@ -77,23 +77,6 @@ import org.mybatis.dynamic.sql.where.condition.IsNotLikeCaseInsensitive
77
77
import org.mybatis.dynamic.sql.where.condition.IsNotNull
78
78
import org.mybatis.dynamic.sql.where.condition.IsNull
79
79
80
- /* *
81
- * Function for code simplification. This allows creation of an independent where or having clause
82
- * that can be reused in different statements. For example:
83
- *
84
- * val whereClause = booleanExpression { id isEqualTo 3 }
85
- *
86
- * val rows = countFrom(foo) {
87
- * where(whereClause)
88
- * }
89
- *
90
- * Use of this function is optional. You can also write code like this:
91
- *
92
- * val whereClause: GroupingCriteriaReceiver = { id isEqualTo 3 }
93
- *
94
- */
95
- fun booleanExpression (receiver : GroupingCriteriaReceiver ): GroupingCriteriaReceiver = receiver
96
-
97
80
// support for criteria without initial conditions
98
81
fun and (receiver : GroupingCriteriaReceiver ): AndOrCriteriaGroup =
99
82
with (GroupingCriteriaCollector ().apply (receiver)) {
Original file line number Diff line number Diff line change @@ -26,9 +26,9 @@ import org.assertj.core.api.Assertions.assertThat
26
26
import org.junit.jupiter.api.BeforeAll
27
27
import org.junit.jupiter.api.Test
28
28
import org.junit.jupiter.api.TestInstance
29
+ import org.mybatis.dynamic.sql.util.kotlin.GroupingCriteriaCollector.Companion.where
29
30
import org.mybatis.dynamic.sql.util.kotlin.WhereApplier
30
31
import org.mybatis.dynamic.sql.util.kotlin.andThen
31
- import org.mybatis.dynamic.sql.util.kotlin.elements.booleanExpression
32
32
import org.mybatis.dynamic.sql.util.kotlin.mybatis3.select
33
33
34
34
@TestInstance(TestInstance .Lifecycle .PER_CLASS )
@@ -145,7 +145,7 @@ class ReusableWhereTest {
145
145
or { occupation.isNull() }
146
146
}
147
147
148
- private val commonWhereClause = booleanExpression {
148
+ private val commonWhereClause = where {
149
149
id isEqualTo 1
150
150
or { occupation.isNull() }
151
151
}
Original file line number Diff line number Diff line change @@ -25,8 +25,8 @@ import org.junit.jupiter.api.Test
25
25
import org.mybatis.dynamic.sql.SqlTable
26
26
import org.mybatis.dynamic.sql.exception.InvalidSqlException
27
27
import org.mybatis.dynamic.sql.util.Messages
28
+ import org.mybatis.dynamic.sql.util.kotlin.GroupingCriteriaCollector.Companion.having
28
29
import org.mybatis.dynamic.sql.util.kotlin.elements.add
29
- import org.mybatis.dynamic.sql.util.kotlin.elements.booleanExpression
30
30
import org.mybatis.dynamic.sql.util.kotlin.elements.column
31
31
import org.mybatis.dynamic.sql.util.kotlin.elements.count
32
32
import org.mybatis.dynamic.sql.util.kotlin.elements.isBetween
@@ -364,7 +364,7 @@ class KGroupingTest {
364
364
365
365
@Test
366
366
fun testIndependentHaving () {
367
- val havingClause = booleanExpression { count() isGreaterThan 6 }
367
+ val havingClause = having { count() isGreaterThan 6 }
368
368
369
369
val selectStatement = select(A , count()) {
370
370
from(foo)
You can’t perform that action at this time.
0 commit comments