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..c6ec63183c8ba6f26a79bcea8eab5ad82e8cc43e 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,36 @@ val KClass.baseMapperOrNull: BaseMapper? get() = runCatching { baseMapper }.getOrNull() // query----------- +/** + * 根据主键查询一条数据 + * @param id 主键值 + */ +inline fun queryOneById(id: Serializable): E? { + val baseMapper = E::class.baseMapperOrNull + return if (baseMapper != null) { + baseMapper.selectOneById(id) + } else { + E::class.tableInfo.let { + Db.selectOneById(it.schema, it.tableName, id) + }?.toEntity(E::class.java) + } +} + +/** + * 根据主键查询一组数据 + * @param ids 主键值 + */ +inline fun queryListByIds(vararg ids: Serializable): List { + val baseMapper = E::class.baseMapperOrNull + return if (baseMapper != null) { + baseMapper.selectListByIds(ids.asList()) + } else { + E::class.tableInfo.let { + ids.mapNotNull { id -> Db.selectOneById(it.schema, it.tableName, ids)?.toEntity(E::class.java) } + } + } +} + /** * 通过条件查询一条数据 * @param columns 查询的列 @@ -502,4 +532,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 + }