@@ -40,6 +40,9 @@ func BuildQuerySQL(db *gorm.DB) {
4040 }
4141 }
4242
43+ if db .Statement .TruncatedFields == nil {
44+ db .Statement .TruncatedFields = make (map [string ]string )
45+ }
4346 if db .Statement .SQL .Len () == 0 {
4447 db .Statement .SQL .Grow (100 )
4548 clauseSelect := clause.Select {Distinct : db .Statement .Distinct }
@@ -158,11 +161,17 @@ func BuildQuerySQL(db *gorm.DB) {
158161 selectColumns , restricted := columnStmt .SelectAndOmitColumns (false , false )
159162 for _ , s := range relation .FieldSchema .DBNames {
160163 if v , ok := selectColumns [s ]; (ok && v ) || (! ok && ! restricted ) {
164+ aliasName := db .NamingStrategy .JoinNestedRelationNames ([]string {tableAliasName , s })
161165 clauseSelect .Columns = append (clauseSelect .Columns , clause.Column {
162166 Table : tableAliasName ,
163167 Name : s ,
164- Alias : utils . NestedRelationName ( tableAliasName , s ) ,
168+ Alias : aliasName ,
165169 })
170+ origTableAliasName := tableAliasName
171+ if alias , ok := db .Statement .TruncatedFields [tableAliasName ]; ok {
172+ origTableAliasName = alias
173+ }
174+ db .Statement .TruncatedFields [aliasName ] = utils .NestedRelationName (origTableAliasName , s )
166175 }
167176 }
168177
@@ -236,7 +245,9 @@ func BuildQuerySQL(db *gorm.DB) {
236245 // joins table alias like "Manager, Company, Manager__Company"
237246 curAliasName := rel .Name
238247 if parentTableName != clause .CurrentTable {
239- curAliasName = utils .NestedRelationName (parentTableName , curAliasName )
248+ aliasName := db .NamingStrategy .JoinNestedRelationNames ([]string {parentTableName , curAliasName })
249+ db .Statement .TruncatedFields [aliasName ] = utils .NestedRelationName (parentTableName , curAliasName )
250+ curAliasName = aliasName
240251 }
241252
242253 if _ , ok := specifiedRelationsName [curAliasName ]; ! ok {
0 commit comments