forked from mirror/gorm
Fix Model with slice data
This commit is contained in:
parent
46bce170ca
commit
fe01e1b9f4
|
@ -172,7 +172,7 @@ func ConvertToAssignments(stmt *gorm.Statement) (set clause.Set) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
stmt.AddClause(clause.Where{Exprs: []clause.Expression{clause.Or(primaryKeyExprs...)}})
|
stmt.AddClause(clause.Where{Exprs: []clause.Expression{clause.And(clause.Or(primaryKeyExprs...))}})
|
||||||
}
|
}
|
||||||
case reflect.Struct:
|
case reflect.Struct:
|
||||||
for _, field := range stmt.Schema.PrimaryFields {
|
for _, field := range stmt.Schema.PrimaryFields {
|
||||||
|
|
12
tests/go.mod
12
tests/go.mod
|
@ -3,16 +3,18 @@ module gorm.io/gorm/tests
|
||||||
go 1.14
|
go 1.14
|
||||||
|
|
||||||
require (
|
require (
|
||||||
|
github.com/denisenkom/go-mssqldb v0.12.2 // indirect
|
||||||
github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 // indirect
|
github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 // indirect
|
||||||
github.com/google/uuid v1.3.0
|
github.com/google/uuid v1.3.0
|
||||||
github.com/jinzhu/now v1.1.5
|
github.com/jinzhu/now v1.1.5
|
||||||
github.com/lib/pq v1.10.5
|
github.com/lib/pq v1.10.6
|
||||||
golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4 // indirect
|
github.com/mattn/go-sqlite3 v1.14.14 // indirect
|
||||||
|
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d // indirect
|
||||||
gorm.io/driver/mysql v1.3.4
|
gorm.io/driver/mysql v1.3.4
|
||||||
gorm.io/driver/postgres v1.3.5
|
gorm.io/driver/postgres v1.3.8
|
||||||
gorm.io/driver/sqlite v1.3.2
|
gorm.io/driver/sqlite v1.3.6
|
||||||
gorm.io/driver/sqlserver v1.3.2
|
gorm.io/driver/sqlserver v1.3.2
|
||||||
gorm.io/gorm v1.23.4
|
gorm.io/gorm v1.23.7
|
||||||
)
|
)
|
||||||
|
|
||||||
replace gorm.io/gorm => ../
|
replace gorm.io/gorm => ../
|
||||||
|
|
|
@ -122,6 +122,14 @@ func TestUpdate(t *testing.T) {
|
||||||
} else {
|
} else {
|
||||||
CheckUser(t, result4, *user)
|
CheckUser(t, result4, *user)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if rowsAffected := DB.Model([]User{result4}).Where("age > 0").Update("name", "jinzhu").RowsAffected; rowsAffected != 1 {
|
||||||
|
t.Errorf("should only update one record, but got %v", rowsAffected)
|
||||||
|
}
|
||||||
|
|
||||||
|
if rowsAffected := DB.Model(users).Where("age > 0").Update("name", "jinzhu").RowsAffected; rowsAffected != 3 {
|
||||||
|
t.Errorf("should only update one record, but got %v", rowsAffected)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestUpdates(t *testing.T) {
|
func TestUpdates(t *testing.T) {
|
||||||
|
|
Loading…
Reference in New Issue