From 81ceeb3e9f3bfe14457ccd9f63c1fd4867e15b97 Mon Sep 17 00:00:00 2001 From: Dmitry Yu Okunev Date: Thu, 21 May 2015 12:30:16 +0300 Subject: [PATCH] Rolled back the behaviour of tag "embedded" It's now required to use "embedded:fixed" --- README.md | 4 ++-- model_struct.go | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) 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 {