use TableName() if struct implement Tabler
interface
This commit is contained in:
parent
6e03b97e26
commit
3099d61444
@ -394,10 +394,14 @@ func (stmt *Statement) BuildCondition(query interface{}, args ...interface{}) []
|
|||||||
selected := selectedColumns[field.DBName] || selectedColumns[field.Name]
|
selected := selectedColumns[field.DBName] || selectedColumns[field.Name]
|
||||||
if selected || (!restricted && field.Readable) {
|
if selected || (!restricted && field.Readable) {
|
||||||
if v, isZero := field.ValueOf(stmt.Context, reflectValue); !isZero || selected {
|
if v, isZero := field.ValueOf(stmt.Context, reflectValue); !isZero || selected {
|
||||||
|
tableName := clause.CurrentTable
|
||||||
|
if e, ok := arg.(schema.Tabler); ok {
|
||||||
|
tableName = e.TableName()
|
||||||
|
}
|
||||||
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