diff --git a/README.md b/README.md index 177456aa..78e6e458 100644 --- a/README.md +++ b/README.md @@ -1177,8 +1177,8 @@ db.Where("email = ?", "x@example.org").Attrs(User{RegisteredIp: "111.111.111.111 ```go type Delta struct { Id int; - Was interface{} `gorm:"embedded"`; - Became interface{} `gorm:"embedded"`; + Was interface{} `gorm:"embedded:prefixed"`; + Became interface{} `gorm:"embedded:prefixed"`; } type Login struct { diff --git a/model_struct.go b/model_struct.go index 0e24a614..0a1631a9 100644 --- a/model_struct.go +++ b/model_struct.go @@ -299,10 +299,12 @@ func (scope *Scope) GetModelStruct() *ModelStruct { field.IsNormal = true } case reflect.Struct: - if _, ok := gormSettings["EMBEDDED"]; ok || fieldStruct.Anonymous { + if embType, ok := gormSettings["EMBEDDED"]; ok || fieldStruct.Anonymous { for _, toField := range toScope.GetStructFields() { toField = toField.clone() - toField.DBName = field.DBName+"__"+toField.DBName + if (embType == "prefixed") { + toField.DBName = field.DBName+"__"+toField.DBName + } toField.Names = append([]string{fieldStruct.Name}, toField.Names...) modelStruct.StructFields = append(modelStruct.StructFields, toField) if toField.IsPrimaryKey {