From 3099d6144482b430a1f65d63ace1e1d18beb0964 Mon Sep 17 00:00:00 2001 From: Septem Li Date: Sun, 31 Jul 2022 19:31:42 +0800 Subject: [PATCH] use TableName() if struct implement `Tabler` interface --- statement.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/statement.go b/statement.go index 12687810..06fae0e5 100644 --- a/statement.go +++ b/statement.go @@ -394,10 +394,14 @@ func (stmt *Statement) BuildCondition(query interface{}, args ...interface{}) [] selected := selectedColumns[field.DBName] || selectedColumns[field.Name] if selected || (!restricted && field.Readable) { 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 != "" { - 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 != "" { - 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}) } } }