浏览代码

修复Sql,SqlMapClient,SqlTemplateClient函数使用map[string]interface{}参数

xormplus 9 年之前
父节点
当前提交
943742e40c
共有 1 个文件被更改,包括 18 次插入0 次删除
  1. 18 0
      session.go

+ 18 - 0
session.go

@@ -1396,6 +1396,24 @@ func (session *Session) Find(rowsSlicePtr interface{}, condiBean ...interface{})
 	}
 
 	if sliceValue.Kind() != reflect.Map {
+		if session.IsSqlFuc {
+			sql := session.Statement.RawSQL
+			params := session.Statement.RawParams
+			i := len(params)
+			if i == 1 {
+				vv := reflect.ValueOf(params[0])
+				if vv.Kind() != reflect.Ptr || vv.Elem().Kind() != reflect.Map {
+					sqlStr = sql
+					args = params
+				} else {
+					sqlStr, args, _ = core.MapToSlice(sqlStr, params[0])
+				}
+			} else {
+				sqlStr = sql
+				args = params
+			}
+		}
+
 		return session.noCacheFind(sliceValue, sqlStr, args...)
 	}