diff --git a/mybatis-flex-kotlin-extensions/src/main/kotlin/extensions/db/DbExtensions.kt b/mybatis-flex-kotlin-extensions/src/main/kotlin/extensions/db/DbExtensions.kt index ec772fa362b77f228f76122f4ab5b18828d18e4b..46528c5868e41098aa646afdccb9f3477096408b 100644 --- a/mybatis-flex-kotlin-extensions/src/main/kotlin/extensions/db/DbExtensions.kt +++ b/mybatis-flex-kotlin-extensions/src/main/kotlin/extensions/db/DbExtensions.kt @@ -79,6 +79,24 @@ val KClass.baseMapperOrNull: BaseMapper? get() = runCatching { baseMapper }.getOrNull() // query----------- +/** + * 根据主键查询一条数据 + * @param id 主键值 + */ +inline fun queryOneById(id: Serializable): E? = + E::class.baseMapperOrNull?.selectOneById(id) ?: E::class.tableInfo.let { + Db.selectOneById(it.schema, it.tableName, id) + }?.toEntity(E::class.java) + +/** + * 根据主键查询一组数据 + * @param ids 主键值 + */ +inline fun queryListByIds(vararg ids: Serializable): List = + E::class.baseMapperOrNull?.selectListByIds(ids.asList()) ?: E::class.tableInfo.let { + ids.mapNotNull { id -> Db.selectOneById(it.schema, it.tableName, ids)?.toEntity(E::class.java) } + } + /** * 通过条件查询一条数据 * @param columns 查询的列 @@ -502,4 +520,4 @@ inline fun insert(entity: E): Int = E::class.baseMapperOrNull?.insert(entity) ?: E::class.tableInfo.let { Db.insert(it.schema, it.tableName, entity.toRow()) - } \ No newline at end of file + }