fix preload issue
This commit is contained in:
parent
79a77d771d
commit
43fa18e4f6
@ -4,10 +4,23 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"reflect"
|
"reflect"
|
||||||
|
"sort"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type searchPreloadSlice []searchPreload
|
||||||
|
|
||||||
|
func (s searchPreloadSlice) Len() int {
|
||||||
|
return len(s)
|
||||||
|
}
|
||||||
|
func (s searchPreloadSlice) Swap(i, j int) {
|
||||||
|
s[i], s[j] = s[j], s[i]
|
||||||
|
}
|
||||||
|
func (s searchPreloadSlice) Less(i, j int) bool {
|
||||||
|
return s[i].schema < s[j].schema
|
||||||
|
}
|
||||||
|
|
||||||
// preloadCallback used to preload associations
|
// preloadCallback used to preload associations
|
||||||
func preloadCallback(scope *Scope) {
|
func preloadCallback(scope *Scope) {
|
||||||
if _, skip := scope.InstanceGet("gorm:skip_query_callback"); skip {
|
if _, skip := scope.InstanceGet("gorm:skip_query_callback"); skip {
|
||||||
@ -33,6 +46,8 @@ func preloadCallback(scope *Scope) {
|
|||||||
fields = scope.Fields()
|
fields = scope.Fields()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
sort.Sort(searchPreloadSlice(scope.Search.preload))
|
||||||
|
|
||||||
for _, preload := range scope.Search.preload {
|
for _, preload := range scope.Search.preload {
|
||||||
var (
|
var (
|
||||||
preloadFields = strings.Split(preload.schema, ".")
|
preloadFields = strings.Split(preload.schema, ".")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user