diff --git a/buildSrc/src/main/kotlin/CI.kt b/buildSrc/src/main/kotlin/CI.kt index bddb3d4..bbaa484 100644 --- a/buildSrc/src/main/kotlin/CI.kt +++ b/buildSrc/src/main/kotlin/CI.kt @@ -3,7 +3,7 @@ import java.lang.Boolean.parseBoolean object Ci { private const val SNAPSHOT_BASE = "0.7.0" - private const val RELEASE_VERSION = "0.6.1" + private const val RELEASE_VERSION = "0.6.2" private val githubSha = System.getenv("GITHUB_SHA") ?: "latest" val publishRelease = System.getProperty("release", "true").let(::parseBoolean) diff --git a/eva-repository/src/main/kotlin/com/razz/eva/repository/JooqBaseModelRepository.kt b/eva-repository/src/main/kotlin/com/razz/eva/repository/JooqBaseModelRepository.kt index 4d1e224..803d20b 100644 --- a/eva-repository/src/main/kotlin/com/razz/eva/repository/JooqBaseModelRepository.kt +++ b/eva-repository/src/main/kotlin/com/razz/eva/repository/JooqBaseModelRepository.kt @@ -287,8 +287,14 @@ abstract class JooqBaseModelRepository( protected suspend fun findLast( condition: Condition, - sortField: TableField - ): M? = findAllWhere(condition, sortField.desc(), 1).singleOrNull() + sortField: TableField, + sortFields: Array> = emptyArray(), + ): M? = findAllWhere( + condition = condition, + sortField = sortField.desc(), + sortFields = sortFields.map(TableField::desc).toTypedArray(), + limit = 1, + ).singleOrNull() /** * If page is not first, we use JOOQ 'seek' method to find position of page @@ -322,18 +328,19 @@ abstract class JooqBaseModelRepository( private fun SelectConditionStep.page( page: Page

, - pagingStrategy: PagingStrategy + pagingStrategy: PagingStrategy, ) where S : N, P : Comparable

= pagingStrategy.select(this, page) protected suspend fun findAllWhere( condition: Condition, sortField: SortField<*>? = null, - limit: Int = MAX_RETURNED_RECORDS + sortFields: Array> = emptyArray(), + limit: Int = MAX_RETURNED_RECORDS, ): List { val select = dslContext.selectFrom(table) .where(condition) return if (sortField != null) { - findAll(select.orderBy(sortField).limit(limit)) + findAll(select.orderBy(sortField, *sortFields).limit(limit)) } else { findAll(select.limit(limit)) }