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() {
417417
418418 infix fun BindableColumn<String>.isNotInCaseInsensitiveWhenPresent (values : Collection <String ?>? ) =
419419 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+ }
420441}
421442
422443class 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
2525@DslMarker
2626annotation class MyBatisDslMarker
2727
28- @Deprecated(" Please use booleanExpression " )
28+ @Deprecated(" Please use GroupingCriteriaCollector.where " )
2929typealias WhereApplier = KotlinBaseBuilder <* >.() -> Unit
3030
31- @Deprecated(" Please use booleanExpression " )
31+ @Deprecated(" Please use GroupingCriteriaCollector.where " )
3232fun WhereApplier.andThen (after : WhereApplier ): WhereApplier = {
3333 invoke(this )
3434 after(this )
Original file line number Diff line number Diff line change @@ -77,23 +77,6 @@ import org.mybatis.dynamic.sql.where.condition.IsNotLikeCaseInsensitive
7777import org.mybatis.dynamic.sql.where.condition.IsNotNull
7878import org.mybatis.dynamic.sql.where.condition.IsNull
7979
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-
9780// support for criteria without initial conditions
9881fun and (receiver : GroupingCriteriaReceiver ): AndOrCriteriaGroup =
9982 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
2626import org.junit.jupiter.api.BeforeAll
2727import org.junit.jupiter.api.Test
2828import org.junit.jupiter.api.TestInstance
29+ import org.mybatis.dynamic.sql.util.kotlin.GroupingCriteriaCollector.Companion.where
2930import org.mybatis.dynamic.sql.util.kotlin.WhereApplier
3031import org.mybatis.dynamic.sql.util.kotlin.andThen
31- import org.mybatis.dynamic.sql.util.kotlin.elements.booleanExpression
3232import org.mybatis.dynamic.sql.util.kotlin.mybatis3.select
3333
3434@TestInstance(TestInstance .Lifecycle .PER_CLASS )
@@ -145,7 +145,7 @@ class ReusableWhereTest {
145145 or { occupation.isNull() }
146146 }
147147
148- private val commonWhereClause = booleanExpression {
148+ private val commonWhereClause = where {
149149 id isEqualTo 1
150150 or { occupation.isNull() }
151151 }
Original file line number Diff line number Diff line change @@ -25,8 +25,8 @@ import org.junit.jupiter.api.Test
2525import org.mybatis.dynamic.sql.SqlTable
2626import org.mybatis.dynamic.sql.exception.InvalidSqlException
2727import org.mybatis.dynamic.sql.util.Messages
28+ import org.mybatis.dynamic.sql.util.kotlin.GroupingCriteriaCollector.Companion.having
2829import org.mybatis.dynamic.sql.util.kotlin.elements.add
29- import org.mybatis.dynamic.sql.util.kotlin.elements.booleanExpression
3030import org.mybatis.dynamic.sql.util.kotlin.elements.column
3131import org.mybatis.dynamic.sql.util.kotlin.elements.count
3232import org.mybatis.dynamic.sql.util.kotlin.elements.isBetween
@@ -364,7 +364,7 @@ class KGroupingTest {
364364
365365 @Test
366366 fun testIndependentHaving () {
367- val havingClause = booleanExpression { count() isGreaterThan 6 }
367+ val havingClause = having { count() isGreaterThan 6 }
368368
369369 val selectStatement = select(A , count()) {
370370 from(foo)
You can’t perform that action at this time.
0 commit comments