Use tablename from provided model when querying WHERE with a struct argument
This commit is contained in:
parent
77bf4aecc6
commit
12f16f11b2
@ -315,10 +315,11 @@ func (stmt *Statement) BuildCondition(query interface{}, args ...interface{}) []
|
|||||||
for _, field := range s.Fields {
|
for _, field := range s.Fields {
|
||||||
if field.Readable {
|
if field.Readable {
|
||||||
if v, isZero := field.ValueOf(reflectValue); !isZero {
|
if v, isZero := field.ValueOf(reflectValue); !isZero {
|
||||||
|
tableName := field.Schema.Table
|
||||||
if field.DBName != "" {
|
if field.DBName != "" {
|
||||||
conds = append(conds, clause.Eq{Column: clause.Column{Table: clause.CurrentTable, Name: field.DBName}, Value: v})
|
conds = append(conds, clause.Eq{Column: clause.Column{Table: tableName, Name: field.DBName}, Value: v})
|
||||||
} else if field.DataType != "" {
|
} else if field.DataType != "" {
|
||||||
conds = append(conds, clause.Eq{Column: clause.Column{Table: clause.CurrentTable, Name: field.Name}, Value: v})
|
conds = append(conds, clause.Eq{Column: clause.Column{Table: tableName, Name: field.Name}, Value: v})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user