Skip to content

Commit d73b0f0

Browse files
committed
feat: support select with KClass (line#825)
1 parent 5f0dfba commit d73b0f0

File tree

1 file changed

+104
-0
lines changed
  • dsl/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/dsl/jpql

1 file changed

+104
-0
lines changed

dsl/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/dsl/jpql/Jpql.kt

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3105,6 +3105,21 @@ open class Jpql : JpqlDsl {
31053105
return SortDsl(this.toExpression(), Sort.Order.DESC)
31063106
}
31073107

3108+
/**
3109+
* Creates a select clause in a select query.
3110+
*/
3111+
@SinceJdsl("3.0.0")
3112+
fun <T : Any> select(
3113+
type: KClass<T>,
3114+
expr: Expressionable<T>,
3115+
): SelectQueryFromStep<T> {
3116+
return SelectQueryFromStepDsl(
3117+
type,
3118+
distinct = false,
3119+
listOf(expr.toExpression()),
3120+
)
3121+
}
3122+
31083123
/**
31093124
* Creates a select clause in a select query.
31103125
*/
@@ -3119,6 +3134,22 @@ open class Jpql : JpqlDsl {
31193134
)
31203135
}
31213136

3137+
/**
3138+
* Creates a select clause in a select query.
3139+
*/
3140+
@SinceJdsl("3.0.0")
3141+
fun <T : Any> select(
3142+
type: KClass<T>,
3143+
expr: Expressionable<*>,
3144+
vararg exprs: Expressionable<*>,
3145+
): SelectQueryFromStep<T> {
3146+
return SelectQueryFromStepDsl(
3147+
type,
3148+
distinct = false,
3149+
listOf(expr.toExpression()) + exprs.map { it.toExpression() },
3150+
)
3151+
}
3152+
31223153
/**
31233154
* Creates a select clause in a select query.
31243155
*/
@@ -3134,6 +3165,21 @@ open class Jpql : JpqlDsl {
31343165
)
31353166
}
31363167

3168+
/**
3169+
* Creates a select clause in a select query.
3170+
*/
3171+
@SinceJdsl("3.0.0")
3172+
fun <T : Any> selectDistinct(
3173+
type: KClass<T>,
3174+
expr: Expressionable<T>,
3175+
): SelectQueryFromStep<T> {
3176+
return SelectQueryFromStepDsl(
3177+
type,
3178+
distinct = true,
3179+
listOf(expr.toExpression()),
3180+
)
3181+
}
3182+
31373183
/**
31383184
* Creates a select clause in a select query.
31393185
*/
@@ -3148,6 +3194,22 @@ open class Jpql : JpqlDsl {
31483194
)
31493195
}
31503196

3197+
/**
3198+
* Creates a select clause in a select query.
3199+
*/
3200+
@SinceJdsl("3.0.0")
3201+
fun <T : Any> selectDistinct(
3202+
type: KClass<T>,
3203+
expr: Expressionable<*>,
3204+
vararg exprs: Expressionable<*>,
3205+
): SelectQueryFromStep<T> {
3206+
return SelectQueryFromStepDsl(
3207+
type,
3208+
distinct = true,
3209+
listOf(expr.toExpression()) + exprs.map { it.toExpression() },
3210+
)
3211+
}
3212+
31513213
/**
31523214
* Creates a select clause in a select query.
31533215
*/
@@ -3163,6 +3225,27 @@ open class Jpql : JpqlDsl {
31633225
)
31643226
}
31653227

3228+
/**
3229+
* Creates a select clause with the DTO projection in a select query.
3230+
*/
3231+
@SinceJdsl("3.0.0")
3232+
fun <T : Any> selectNew(
3233+
type: KClass<T>,
3234+
expr: Expressionable<*>,
3235+
vararg exprs: Expressionable<*>,
3236+
): SelectQueryFromStep<T> {
3237+
return SelectQueryFromStepDsl(
3238+
returnType = type,
3239+
distinct = false,
3240+
select = listOf(
3241+
Expressions.new(
3242+
type,
3243+
listOf(expr.toExpression()) + exprs.map { it.toExpression() },
3244+
),
3245+
),
3246+
)
3247+
}
3248+
31663249
/**
31673250
* Creates a select clause with the DTO projection in a select query.
31683251
*/
@@ -3183,6 +3266,27 @@ open class Jpql : JpqlDsl {
31833266
)
31843267
}
31853268

3269+
/**
3270+
* Creates a select clause with the DTO projection in a select query.
3271+
*/
3272+
@SinceJdsl("3.0.0")
3273+
fun <T : Any> selectDistinctNew(
3274+
type: KClass<T>,
3275+
expr: Expressionable<*>,
3276+
vararg exprs: Expressionable<*>,
3277+
): SelectQueryFromStep<T> {
3278+
return SelectQueryFromStepDsl(
3279+
returnType = type,
3280+
distinct = true,
3281+
select = listOf(
3282+
Expressions.new(
3283+
type,
3284+
listOf(expr.toExpression()) + exprs.map { it.toExpression() },
3285+
),
3286+
),
3287+
)
3288+
}
3289+
31863290
/**
31873291
* Creates a select clause with the DTO projection in a select query.
31883292
*/

0 commit comments

Comments
 (0)