From c1219b43e03cc97b6c35125c1c15e9987fefabc0 Mon Sep 17 00:00:00 2001 From: meengi Date: Sat, 3 Feb 2024 02:10:54 +0900 Subject: [PATCH 1/6] feat: implement current date & time function --- .../com/linecorp/kotlinjdsl/dsl/jpql/Jpql.kt | 22 ++++++++ .../dsl/jpql/expression/CurrentDateDslTest.kt | 40 ++++++++++++++ .../dsl/jpql/expression/CurrentTimeDslTest.kt | 40 ++++++++++++++ .../querymodel/jpql/expression/Expressions.kt | 19 +++++++ .../jpql/expression/impl/JpqlCurrent.kt | 17 ++++++ .../jpql/expression/ExpressionsTest.kt | 23 ++++++++ .../render/jpql/JpqlRenderContext.kt | 4 ++ .../impl/JpqlCurrentDateSerializer.kt | 26 ++++++++++ .../impl/JpqlCurrentTimeSerializer.kt | 26 ++++++++++ .../impl/JpqlCurrentDateSerializerTest.kt | 52 +++++++++++++++++++ .../impl/JpqlCurrentTimeSerializerTest.kt | 52 +++++++++++++++++++ 11 files changed, 321 insertions(+) create mode 100644 dsl/jpql/src/test/kotlin/com/linecorp/kotlinjdsl/dsl/jpql/expression/CurrentDateDslTest.kt create mode 100644 dsl/jpql/src/test/kotlin/com/linecorp/kotlinjdsl/dsl/jpql/expression/CurrentTimeDslTest.kt create mode 100644 query-model/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/querymodel/jpql/expression/impl/JpqlCurrent.kt create mode 100644 render/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/render/jpql/serializer/impl/JpqlCurrentDateSerializer.kt create mode 100644 render/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/render/jpql/serializer/impl/JpqlCurrentTimeSerializer.kt create mode 100644 render/jpql/src/test/kotlin/com/linecorp/kotlinjdsl/render/jpql/serializer/impl/JpqlCurrentDateSerializerTest.kt create mode 100644 render/jpql/src/test/kotlin/com/linecorp/kotlinjdsl/render/jpql/serializer/impl/JpqlCurrentTimeSerializerTest.kt diff --git a/dsl/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/dsl/jpql/Jpql.kt b/dsl/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/dsl/jpql/Jpql.kt index bc4ee6d0a..19313d70d 100644 --- a/dsl/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/dsl/jpql/Jpql.kt +++ b/dsl/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/dsl/jpql/Jpql.kt @@ -44,6 +44,8 @@ import com.linecorp.kotlinjdsl.querymodel.jpql.select.SelectQuery import com.linecorp.kotlinjdsl.querymodel.jpql.sort.Sort import java.math.BigDecimal import java.math.BigInteger +import java.time.LocalDate +import java.time.LocalTime import kotlin.internal.Exact import kotlin.internal.LowPriorityInOverloadResolution import kotlin.reflect.KClass @@ -486,6 +488,26 @@ open class Jpql : JpqlDsl { return Expressions.times(this.toExpression(), value.toExpression()) } + /** + * Creates an expression that represents the current date. + * + * This is the same as ```CURRENT_DATE```. + */ + @SinceJdsl("3.4.0") + fun currentDate(): Expression { + return Expressions.currentDate() + } + + /** + * Creates an expression that represents the current time. + * + * This is the same as ```CURRENT_TIME```. + */ + @SinceJdsl("3.4.0") + fun currentTime(): Expression { + return Expressions.currentTime() + } + /** * Creates an expression that represents the divide of values. * The values are each enclosed in parentheses. diff --git a/dsl/jpql/src/test/kotlin/com/linecorp/kotlinjdsl/dsl/jpql/expression/CurrentDateDslTest.kt b/dsl/jpql/src/test/kotlin/com/linecorp/kotlinjdsl/dsl/jpql/expression/CurrentDateDslTest.kt new file mode 100644 index 000000000..507ca5479 --- /dev/null +++ b/dsl/jpql/src/test/kotlin/com/linecorp/kotlinjdsl/dsl/jpql/expression/CurrentDateDslTest.kt @@ -0,0 +1,40 @@ +package com.linecorp.kotlinjdsl.dsl.jpql.expression + +import com.linecorp.kotlinjdsl.dsl.jpql.queryPart +import com.linecorp.kotlinjdsl.querymodel.jpql.expression.Expression +import com.linecorp.kotlinjdsl.querymodel.jpql.expression.Expressions +import org.assertj.core.api.WithAssertions +import org.junit.jupiter.api.Test +import java.time.LocalDate + +class CurrentDateDslTest : WithAssertions { + @Test + fun `currentDate() with a property`() { + // when + val expression = queryPart { + currentDate() + }.toExpression() + + val actual: Expression = expression // for type check + + // then + val expected = Expressions.currentDate() + + assertThat(actual).isEqualTo(expected) + } + + @Test + fun `currentDate() with a expression`() { + // when + val expression = queryPart { + currentDate() + }.toExpression() + + val actual: Expression = expression // for type check + + // then + val expected = Expressions.currentDate() + + assertThat(actual).isEqualTo(expected) + } +} diff --git a/dsl/jpql/src/test/kotlin/com/linecorp/kotlinjdsl/dsl/jpql/expression/CurrentTimeDslTest.kt b/dsl/jpql/src/test/kotlin/com/linecorp/kotlinjdsl/dsl/jpql/expression/CurrentTimeDslTest.kt new file mode 100644 index 000000000..7d357954d --- /dev/null +++ b/dsl/jpql/src/test/kotlin/com/linecorp/kotlinjdsl/dsl/jpql/expression/CurrentTimeDslTest.kt @@ -0,0 +1,40 @@ +package com.linecorp.kotlinjdsl.dsl.jpql.expression + +import com.linecorp.kotlinjdsl.dsl.jpql.queryPart +import com.linecorp.kotlinjdsl.querymodel.jpql.expression.Expression +import com.linecorp.kotlinjdsl.querymodel.jpql.expression.Expressions +import org.assertj.core.api.WithAssertions +import org.junit.jupiter.api.Test +import java.time.LocalTime + +class CurrentTimeDslTest : WithAssertions { + @Test + fun `currentDate() with a property`() { + // when + val expression = queryPart { + currentTime() + }.toExpression() + + val actual: Expression = expression // for type check + + // then + val expected = Expressions.currentTime() + + assertThat(actual).isEqualTo(expected) + } + + @Test + fun `currentDate() with a expression`() { + // when + val expression = queryPart { + currentTime() + }.toExpression() + + val actual: Expression = expression // for type check + + // then + val expected = Expressions.currentTime() + + assertThat(actual).isEqualTo(expected) + } +} diff --git a/query-model/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/querymodel/jpql/expression/Expressions.kt b/query-model/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/querymodel/jpql/expression/Expressions.kt index 25f378881..1309ffc7c 100644 --- a/query-model/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/querymodel/jpql/expression/Expressions.kt +++ b/query-model/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/querymodel/jpql/expression/Expressions.kt @@ -9,6 +9,7 @@ import com.linecorp.kotlinjdsl.querymodel.jpql.expression.impl.JpqlCaseWhen import com.linecorp.kotlinjdsl.querymodel.jpql.expression.impl.JpqlCoalesce import com.linecorp.kotlinjdsl.querymodel.jpql.expression.impl.JpqlConcat import com.linecorp.kotlinjdsl.querymodel.jpql.expression.impl.JpqlCount +import com.linecorp.kotlinjdsl.querymodel.jpql.expression.impl.JpqlCurrent import com.linecorp.kotlinjdsl.querymodel.jpql.expression.impl.JpqlCustomExpression import com.linecorp.kotlinjdsl.querymodel.jpql.expression.impl.JpqlDivide import com.linecorp.kotlinjdsl.querymodel.jpql.expression.impl.JpqlEntityType @@ -44,6 +45,8 @@ import com.linecorp.kotlinjdsl.querymodel.jpql.select.SelectQuery import com.linecorp.kotlinjdsl.querymodel.jpql.select.impl.JpqlSelectQuery import java.math.BigDecimal import java.math.BigInteger +import java.time.LocalDate +import java.time.LocalTime import kotlin.internal.Exact import kotlin.reflect.KClass @@ -633,4 +636,20 @@ object Expressions { fun parentheses(expr: Expression): Expression { return JpqlExpressionParentheses(expr) } + + /** + * Creates an expression that represents the current date. + */ + @SinceJdsl("3.4.0") + fun currentDate(): Expression { + return JpqlCurrent.CurrentDate + } + + /** + * Creates an expression that represents the current time. + */ + @SinceJdsl("3.4.0") + fun currentTime(): Expression { + return JpqlCurrent.CurrentTime + } } diff --git a/query-model/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/querymodel/jpql/expression/impl/JpqlCurrent.kt b/query-model/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/querymodel/jpql/expression/impl/JpqlCurrent.kt new file mode 100644 index 000000000..7486fb302 --- /dev/null +++ b/query-model/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/querymodel/jpql/expression/impl/JpqlCurrent.kt @@ -0,0 +1,17 @@ +package com.linecorp.kotlinjdsl.querymodel.jpql.expression.impl + +import com.linecorp.kotlinjdsl.Internal +import com.linecorp.kotlinjdsl.querymodel.jpql.expression.Expression +import java.time.LocalDate +import java.time.LocalTime + +/** + * Expression that represents the current date & time. + */ +@Internal +sealed interface JpqlCurrent : Expression { + + object CurrentDate : JpqlCurrent + + object CurrentTime : JpqlCurrent +} diff --git a/query-model/jpql/src/test/kotlin/com/linecorp/kotlinjdsl/querymodel/jpql/expression/ExpressionsTest.kt b/query-model/jpql/src/test/kotlin/com/linecorp/kotlinjdsl/querymodel/jpql/expression/ExpressionsTest.kt index fae31a8ba..c22eef5e0 100644 --- a/query-model/jpql/src/test/kotlin/com/linecorp/kotlinjdsl/querymodel/jpql/expression/ExpressionsTest.kt +++ b/query-model/jpql/src/test/kotlin/com/linecorp/kotlinjdsl/querymodel/jpql/expression/ExpressionsTest.kt @@ -11,6 +11,7 @@ import com.linecorp.kotlinjdsl.querymodel.jpql.expression.impl.JpqlCaseWhen import com.linecorp.kotlinjdsl.querymodel.jpql.expression.impl.JpqlCoalesce import com.linecorp.kotlinjdsl.querymodel.jpql.expression.impl.JpqlConcat import com.linecorp.kotlinjdsl.querymodel.jpql.expression.impl.JpqlCount +import com.linecorp.kotlinjdsl.querymodel.jpql.expression.impl.JpqlCurrent import com.linecorp.kotlinjdsl.querymodel.jpql.expression.impl.JpqlCustomExpression import com.linecorp.kotlinjdsl.querymodel.jpql.expression.impl.JpqlDivide import com.linecorp.kotlinjdsl.querymodel.jpql.expression.impl.JpqlEntityType @@ -318,6 +319,28 @@ class ExpressionsTest : WithAssertions { assertThat(actual).isEqualTo(expected) } + @Test + fun currentDate() { + // when + val actual = Expressions.currentDate() + + // then + val expected = JpqlCurrent.CurrentDate + + assertThat(actual).isEqualTo(expected) + } + + @Test + fun currentTime() { + // when + val actual = Expressions.currentTime() + + // then + val expected = JpqlCurrent.CurrentTime + + assertThat(actual).isEqualTo(expected) + } + @Test fun div() { // when diff --git a/render/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/render/jpql/JpqlRenderContext.kt b/render/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/render/jpql/JpqlRenderContext.kt index ed5e4e135..38fa531b9 100644 --- a/render/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/render/jpql/JpqlRenderContext.kt +++ b/render/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/render/jpql/JpqlRenderContext.kt @@ -22,6 +22,8 @@ import com.linecorp.kotlinjdsl.render.jpql.serializer.impl.JpqlCaseWhenSerialize import com.linecorp.kotlinjdsl.render.jpql.serializer.impl.JpqlCoalesceSerializer import com.linecorp.kotlinjdsl.render.jpql.serializer.impl.JpqlConcatSerializer import com.linecorp.kotlinjdsl.render.jpql.serializer.impl.JpqlCountSerializer +import com.linecorp.kotlinjdsl.render.jpql.serializer.impl.JpqlCurrentDateSerializer +import com.linecorp.kotlinjdsl.render.jpql.serializer.impl.JpqlCurrentTimeSerializer import com.linecorp.kotlinjdsl.render.jpql.serializer.impl.JpqlCustomExpressionSerializer import com.linecorp.kotlinjdsl.render.jpql.serializer.impl.JpqlCustomPredicateSerializer import com.linecorp.kotlinjdsl.render.jpql.serializer.impl.JpqlDeleteQuerySerializer @@ -267,6 +269,8 @@ private class DefaultModule : JpqlRenderModule { JpqlCoalesceSerializer(), JpqlConcatSerializer(), JpqlCountSerializer(), + JpqlCurrentDateSerializer(), + JpqlCurrentTimeSerializer(), JpqlCustomExpressionSerializer(), JpqlCustomPredicateSerializer(), JpqlDeleteQuerySerializer(), diff --git a/render/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/render/jpql/serializer/impl/JpqlCurrentDateSerializer.kt b/render/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/render/jpql/serializer/impl/JpqlCurrentDateSerializer.kt new file mode 100644 index 000000000..962812fc1 --- /dev/null +++ b/render/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/render/jpql/serializer/impl/JpqlCurrentDateSerializer.kt @@ -0,0 +1,26 @@ +package com.linecorp.kotlinjdsl.render.jpql.serializer.impl + +import com.linecorp.kotlinjdsl.Internal +import com.linecorp.kotlinjdsl.querymodel.jpql.expression.impl.JpqlCurrent +import com.linecorp.kotlinjdsl.render.RenderContext +import com.linecorp.kotlinjdsl.render.jpql.serializer.JpqlRenderSerializer +import com.linecorp.kotlinjdsl.render.jpql.serializer.JpqlSerializer +import com.linecorp.kotlinjdsl.render.jpql.writer.JpqlWriter +import kotlin.reflect.KClass + +@Internal +class JpqlCurrentDateSerializer : JpqlSerializer { + override fun handledType(): KClass { + return JpqlCurrent.CurrentDate::class + } + + override fun serialize(part: JpqlCurrent.CurrentDate, writer: JpqlWriter, context: RenderContext) { + val delegate = context.getValue(JpqlRenderSerializer) + + writer.write("CURRENT_DATE") + + writer.writeParentheses { + delegate.serialize(part, writer, context) + } + } +} diff --git a/render/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/render/jpql/serializer/impl/JpqlCurrentTimeSerializer.kt b/render/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/render/jpql/serializer/impl/JpqlCurrentTimeSerializer.kt new file mode 100644 index 000000000..5956f77fc --- /dev/null +++ b/render/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/render/jpql/serializer/impl/JpqlCurrentTimeSerializer.kt @@ -0,0 +1,26 @@ +package com.linecorp.kotlinjdsl.render.jpql.serializer.impl + +import com.linecorp.kotlinjdsl.Internal +import com.linecorp.kotlinjdsl.querymodel.jpql.expression.impl.JpqlCurrent +import com.linecorp.kotlinjdsl.render.RenderContext +import com.linecorp.kotlinjdsl.render.jpql.serializer.JpqlRenderSerializer +import com.linecorp.kotlinjdsl.render.jpql.serializer.JpqlSerializer +import com.linecorp.kotlinjdsl.render.jpql.writer.JpqlWriter +import kotlin.reflect.KClass + +@Internal +class JpqlCurrentTimeSerializer : JpqlSerializer { + override fun handledType(): KClass { + return JpqlCurrent.CurrentTime::class + } + + override fun serialize(part: JpqlCurrent.CurrentTime, writer: JpqlWriter, context: RenderContext) { + val delegate = context.getValue(JpqlRenderSerializer) + + writer.write("CURRENT_TIME") + + writer.writeParentheses { + delegate.serialize(part, writer, context) + } + } +} diff --git a/render/jpql/src/test/kotlin/com/linecorp/kotlinjdsl/render/jpql/serializer/impl/JpqlCurrentDateSerializerTest.kt b/render/jpql/src/test/kotlin/com/linecorp/kotlinjdsl/render/jpql/serializer/impl/JpqlCurrentDateSerializerTest.kt new file mode 100644 index 000000000..7226ebd7c --- /dev/null +++ b/render/jpql/src/test/kotlin/com/linecorp/kotlinjdsl/render/jpql/serializer/impl/JpqlCurrentDateSerializerTest.kt @@ -0,0 +1,52 @@ +package com.linecorp.kotlinjdsl.render.jpql.serializer.impl + +import com.linecorp.kotlinjdsl.querymodel.jpql.expression.Expressions +import com.linecorp.kotlinjdsl.querymodel.jpql.expression.Expressions.currentDate +import com.linecorp.kotlinjdsl.querymodel.jpql.expression.impl.JpqlCurrent +import com.linecorp.kotlinjdsl.render.TestRenderContext +import com.linecorp.kotlinjdsl.render.jpql.serializer.JpqlRenderSerializer +import com.linecorp.kotlinjdsl.render.jpql.serializer.JpqlSerializerTest +import com.linecorp.kotlinjdsl.render.jpql.writer.JpqlWriter +import io.mockk.impl.annotations.MockK +import io.mockk.verifySequence +import org.assertj.core.api.WithAssertions +import org.junit.jupiter.api.Test + +@JpqlSerializerTest +class JpqlCurrentDateSerializerTest : WithAssertions { + + private val sut = JpqlCurrentDateSerializer() + + @MockK + private lateinit var writer: JpqlWriter + + @MockK + private lateinit var serializer: JpqlRenderSerializer + + private val expression = currentDate() + + @Test + fun handledType() { // when + val actual = sut.handledType() + + // then + assertThat(actual).isEqualTo(JpqlCurrent.CurrentDate::class) + } + + @Test + fun serialize() { + // given + val part = Expressions.currentDate() + val context = TestRenderContext(serializer) + + // when + sut.serialize(part as JpqlCurrent.CurrentDate, writer, context) + + // then + verifySequence { + writer.write("CURRENT_DATE") + writer.writeParentheses(any()) + serializer.serialize(expression, writer, context) + } + } +} diff --git a/render/jpql/src/test/kotlin/com/linecorp/kotlinjdsl/render/jpql/serializer/impl/JpqlCurrentTimeSerializerTest.kt b/render/jpql/src/test/kotlin/com/linecorp/kotlinjdsl/render/jpql/serializer/impl/JpqlCurrentTimeSerializerTest.kt new file mode 100644 index 000000000..f88cc0079 --- /dev/null +++ b/render/jpql/src/test/kotlin/com/linecorp/kotlinjdsl/render/jpql/serializer/impl/JpqlCurrentTimeSerializerTest.kt @@ -0,0 +1,52 @@ +package com.linecorp.kotlinjdsl.render.jpql.serializer.impl + +import com.linecorp.kotlinjdsl.querymodel.jpql.expression.Expressions +import com.linecorp.kotlinjdsl.querymodel.jpql.expression.Expressions.currentTime +import com.linecorp.kotlinjdsl.querymodel.jpql.expression.impl.JpqlCurrent +import com.linecorp.kotlinjdsl.render.TestRenderContext +import com.linecorp.kotlinjdsl.render.jpql.serializer.JpqlRenderSerializer +import com.linecorp.kotlinjdsl.render.jpql.serializer.JpqlSerializerTest +import com.linecorp.kotlinjdsl.render.jpql.writer.JpqlWriter +import io.mockk.impl.annotations.MockK +import io.mockk.verifySequence +import org.assertj.core.api.WithAssertions +import org.junit.jupiter.api.Test + +@JpqlSerializerTest +class JpqlCurrentTimeSerializerTest : WithAssertions { + + private val sut = JpqlCurrentTimeSerializer() + + @MockK + private lateinit var writer: JpqlWriter + + @MockK + private lateinit var serializer: JpqlRenderSerializer + + private val expression = currentTime() + + @Test + fun handledType() { // when + val actual = sut.handledType() + + // then + assertThat(actual).isEqualTo(JpqlCurrent.CurrentTime::class) + } + + @Test + fun serialize() { + // given + val part = Expressions.currentTime() + val context = TestRenderContext(serializer) + + // when + sut.serialize(part as JpqlCurrent.CurrentTime, writer, context) + + // then + verifySequence { + writer.write("CURRENT_TIME") + writer.writeParentheses(any()) + serializer.serialize(expression, writer, context) + } + } +} From c963cc76ffc42cd6a012f3b8c865b5bd56c48b93 Mon Sep 17 00:00:00 2001 From: meengi Date: Sat, 3 Feb 2024 02:11:44 +0900 Subject: [PATCH 2/6] docs: add currentDate, currentTime function description --- docs/en/jpql-with-kotlin-jdsl/expressions.md | 4 ++-- docs/ko/jpql-with-kotlin-jdsl/expressions.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/en/jpql-with-kotlin-jdsl/expressions.md b/docs/en/jpql-with-kotlin-jdsl/expressions.md index ec118d430..9a5fd976f 100644 --- a/docs/en/jpql-with-kotlin-jdsl/expressions.md +++ b/docs/en/jpql-with-kotlin-jdsl/expressions.md @@ -223,8 +223,8 @@ Kotlin JDSL provides a series of functions to support built-in functions in JPA. | Function | DSL function | |--------------------|--------------| -| CURRENT\_DATE | not yet | -| CURRENT\_TIME | not yet | +| CURRENT\_DATE | support | +| CURRENT\_TIME | support | | CURRENT\_TIMESTAMP | not yet | | LOCAL DATE | not yet | | LOCAL TIME | not yet | diff --git a/docs/ko/jpql-with-kotlin-jdsl/expressions.md b/docs/ko/jpql-with-kotlin-jdsl/expressions.md index e77eadfec..05958c291 100644 --- a/docs/ko/jpql-with-kotlin-jdsl/expressions.md +++ b/docs/ko/jpql-with-kotlin-jdsl/expressions.md @@ -221,8 +221,8 @@ Kotlin JDSL은 JPA에서 제공하는 여러 함수들을 지원하기 위함 | Function | DSL function | |--------------------|--------------| -| CURRENT\_DATE | not yet | -| CURRENT\_TIME | not yet | +| CURRENT\_DATE | support | +| CURRENT\_TIME | support | | CURRENT\_TIMESTAMP | not yet | | LOCAL DATE | not yet | | LOCAL TIME | not yet | From 8e2574d0715fdfec706d1ecf8b0560ffeeb6f440 Mon Sep 17 00:00:00 2001 From: meengi Date: Mon, 5 Feb 2024 22:00:17 +0900 Subject: [PATCH 3/6] fix: JpqlCurrent date,time separation and code clean up --- .../com/linecorp/kotlinjdsl/dsl/jpql/Jpql.kt | 12 +++++------ .../dsl/jpql/expression/CurrentDateDslTest.kt | 21 +++---------------- .../dsl/jpql/expression/CurrentTimeDslTest.kt | 21 +++---------------- .../querymodel/jpql/expression/Expressions.kt | 15 ++++++------- .../jpql/expression/impl/JpqlCurrent.kt | 17 --------------- .../jpql/expression/impl/JpqlCurrentDate.kt | 6 ++++++ .../jpql/expression/impl/JpqlCurrentTime.kt | 6 ++++++ .../jpql/expression/ExpressionsTest.kt | 7 ++++--- .../impl/JpqlCurrentDateSerializer.kt | 17 +++++---------- .../impl/JpqlCurrentTimeSerializer.kt | 17 +++++---------- .../impl/JpqlCurrentDateSerializerTest.kt | 14 ++++++------- .../impl/JpqlCurrentTimeSerializerTest.kt | 14 ++++++------- 12 files changed, 58 insertions(+), 109 deletions(-) delete mode 100644 query-model/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/querymodel/jpql/expression/impl/JpqlCurrent.kt create mode 100644 query-model/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/querymodel/jpql/expression/impl/JpqlCurrentDate.kt create mode 100644 query-model/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/querymodel/jpql/expression/impl/JpqlCurrentTime.kt diff --git a/dsl/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/dsl/jpql/Jpql.kt b/dsl/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/dsl/jpql/Jpql.kt index 19313d70d..e3d09dca6 100644 --- a/dsl/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/dsl/jpql/Jpql.kt +++ b/dsl/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/dsl/jpql/Jpql.kt @@ -44,8 +44,8 @@ import com.linecorp.kotlinjdsl.querymodel.jpql.select.SelectQuery import com.linecorp.kotlinjdsl.querymodel.jpql.sort.Sort import java.math.BigDecimal import java.math.BigInteger -import java.time.LocalDate -import java.time.LocalTime +import java.sql.Date +import java.sql.Time import kotlin.internal.Exact import kotlin.internal.LowPriorityInOverloadResolution import kotlin.reflect.KClass @@ -489,22 +489,22 @@ open class Jpql : JpqlDsl { } /** - * Creates an expression that represents the current date. + * Creates an expression that represents the current date. * * This is the same as ```CURRENT_DATE```. */ @SinceJdsl("3.4.0") - fun currentDate(): Expression { + fun currentDate(): Expression { return Expressions.currentDate() } /** - * Creates an expression that represents the current time. + * Creates an expression that represents the current time. * * This is the same as ```CURRENT_TIME```. */ @SinceJdsl("3.4.0") - fun currentTime(): Expression { + fun currentTime(): Expression