From 5d6b9e272dc34edf406e958dde99bdc5d1b00edf Mon Sep 17 00:00:00 2001 From: phongphan Date: Fri, 25 Jul 2025 19:08:42 +0700 Subject: [PATCH] bug: unable to use returning for CreateInBatches --- main_test.go | 14 +++++++++++--- models.go | 2 +- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/main_test.go b/main_test.go index 60a388f7..dc08985c 100644 --- a/main_test.go +++ b/main_test.go @@ -1,6 +1,7 @@ package main import ( + "gorm.io/gorm/clause" "testing" ) @@ -9,12 +10,19 @@ import ( // TEST_DRIVERS: sqlite, mysql, postgres, sqlserver func TestGORM(t *testing.T) { - user := User{Name: "jinzhu"} + users := []User{ + {Name: "jinzhu", Age: 18}, + {Name: "jinzhu1", Age: 18}, + } - DB.Create(&user) + DB.Model(&users). + Clauses(clause.OnConflict{ + Columns: []clause.Column{{Name: "name"}}, + DoUpdates: clause.AssignmentColumns([]string{"age", "name"}), + }, clause.Returning{}).CreateInBatches(&users, len(users)) var result User - if err := DB.First(&result, user.ID).Error; err != nil { + if err := DB.First(&result, users[0].ID).Error; err != nil { t.Errorf("Failed, got error: %v", err) } } diff --git a/models.go b/models.go index 692a6842..4a58517c 100644 --- a/models.go +++ b/models.go @@ -13,7 +13,7 @@ import ( // His pet also has one Toy (has one - polymorphic) type User struct { gorm.Model - Name string + Name string `gorm:"unique"` Age uint Birthday *time.Time Account Account