miemie há 6 anos atrás
pai
commit
c43f4a3d5e

+ 7 - 3
mybatis-plus-extension/src/main/kotlin/com/baomidou/mybatisplus/extension/kotlin/AbstractKtWrapper.kt

@@ -36,6 +36,13 @@ abstract class AbstractKtWrapper<T, Children : AbstractKtWrapper<T, Children>> :
      */
     private lateinit var columnMap: Map<String, ColumnCache>
 
+    override fun initEntityClass() {
+        super.initEntityClass()
+        if (!::columnMap.isInitialized) {
+            columnMap = LambdaUtils.getColumnMap(this.checkEntityClass)
+        }
+    }
+
     /**
      * 重载方法,默认 onlyColumn = true
      */
@@ -45,9 +52,6 @@ abstract class AbstractKtWrapper<T, Children : AbstractKtWrapper<T, Children>> :
      * 核心实现方法,供重载使用
      */
     private fun columnToString(kProperty: KProperty<*>, onlyColumn: Boolean): String? {
-        if (!::columnMap.isInitialized) {
-            columnMap = LambdaUtils.getColumnMap(this.checkEntityClass)
-        }
         return columnMap[LambdaUtils.formatKey(kProperty.name)]?.let { if (onlyColumn) it.column else it.columnSelect }
     }
 

+ 2 - 2
mybatis-plus-extension/src/main/kotlin/com/baomidou/mybatisplus/extension/kotlin/KtQueryWrapper.kt

@@ -50,12 +50,12 @@ class KtQueryWrapper<T : Any> : AbstractKtWrapper<T, KtQueryWrapper<T>>, Query<K
 
     internal constructor(entity: T, entityClass: Class<T>?, sqlSelect: String?, paramNameSeq: AtomicInteger,
                          paramNameValuePairs: Map<String, Any>, mergeSegments: MergeSegments) {
-        this.entity = entity
-        this.entityClass = entityClass
+        this.setEntity(entity)
         this.paramNameSeq = paramNameSeq
         this.paramNameValuePairs = paramNameValuePairs
         this.expression = mergeSegments
         this.sqlSelect = sqlSelect
+        this.entityClass = entityClass
     }
 
     /**

+ 1 - 1
mybatis-plus-extension/src/main/kotlin/com/baomidou/mybatisplus/extension/kotlin/KtUpdateWrapper.kt

@@ -50,7 +50,7 @@ class KtUpdateWrapper<T : Any> : AbstractKtWrapper<T, KtUpdateWrapper<T>>, Updat
 
     internal constructor(entity: T, paramNameSeq: AtomicInteger, paramNameValuePairs: Map<String, Any>,
                          mergeSegments: MergeSegments) {
-        this.entity = entity
+        this.setEntity(entity)
         this.paramNameSeq = paramNameSeq
         this.paramNameValuePairs = paramNameValuePairs
         this.expression = mergeSegments