From 227035fa78e9d932d4c2b62b6c1748605b302486 Mon Sep 17 00:00:00 2001 From: alex Date: Mon, 2 Nov 2020 00:02:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=9F=A5=E8=AF=A2=E5=8F=AF?= =?UTF-8?q?=E4=BB=A5=E8=8E=B7=E5=8F=96=E7=88=B6=E7=B1=BB=E5=B1=9E=E6=80=A7?= =?UTF-8?q?=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/synebula/gaea/app/IApplication.kt | 4 ++-- .../com/synebula/gaea/mongo/query/MongoQuery.kt | 17 ++++++++++++++--- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/gaea.app/src/main/kotlin/com/synebula/gaea/app/IApplication.kt b/src/gaea.app/src/main/kotlin/com/synebula/gaea/app/IApplication.kt index 1d2224e..767ffa9 100644 --- a/src/gaea.app/src/main/kotlin/com/synebula/gaea/app/IApplication.kt +++ b/src/gaea.app/src/main/kotlin/com/synebula/gaea/app/IApplication.kt @@ -28,7 +28,7 @@ interface IApplication { } catch (ex: Exception) { msg.status = Status.Error msg.message = if (error.isEmpty()) ex.message ?: "" else "$error: ${ex.message}" - logger?.error(this, ex, "$error: ${ex.message}") + logger?.error(this, ex, "[$name]$error: ${ex.message}") } return msg } @@ -42,7 +42,7 @@ interface IApplication { process(msg) logger?.debug(this, "$name business execute success") } catch (ex: Exception) { - logger?.error(this, ex, "$error。异常消息将抛出!: ${ex.message}") + logger?.error(this, ex, "[$name]$error。异常消息将抛出!: ${ex.message}") throw RuntimeException(error, ex) } return msg diff --git a/src/gaea.mongo/src/main/kotlin/com/synebula/gaea/mongo/query/MongoQuery.kt b/src/gaea.mongo/src/main/kotlin/com/synebula/gaea/mongo/query/MongoQuery.kt index 783b417..6c37657 100644 --- a/src/gaea.mongo/src/main/kotlin/com/synebula/gaea/mongo/query/MongoQuery.kt +++ b/src/gaea.mongo/src/main/kotlin/com/synebula/gaea/mongo/query/MongoQuery.kt @@ -27,7 +27,7 @@ open class MongoQuery(var template: MongoTemplate, var logger: ILogger? = null) var validViewCollection = false override fun list(params: Map?, clazz: Class): List { - val fields = clazz.fieldNames() + val fields = this.fields(clazz) val query = Query() query.where(params, clazz) query.select(fields.toTypedArray()) @@ -41,7 +41,7 @@ open class MongoQuery(var template: MongoTemplate, var logger: ILogger? = null) override fun paging(params: Params, clazz: Class): Page { val query = Query() - val fields = clazz.fieldNames() + val fields = this.fields(clazz) val result = Page(params.page, params.size) result.total = this.count(params.parameters, clazz) //如果总数和索引相同,说明该页没有数据,直接跳到上一页 @@ -61,12 +61,23 @@ open class MongoQuery(var template: MongoTemplate, var logger: ILogger? = null) return this.template.findOne(whereId(id), clazz, this.collection(clazz)) } + fun fields(clazz: Class): List { + val fields = mutableListOf() + fields.addAll(clazz.fieldNames()) + var parent = clazz.superclass + while (parent != Any::class.java) { + fields.addAll(clazz.superclass.fieldNames()) + parent = parent.superclass + } + return fields + } + /** * 获取collection */ fun collection(clazz: Class): String { val table: Table? = clazz.getDeclaredAnnotation( - Table::class.java + Table::class.java ) return if (table != null) return table.name