generated from oracle/template-repo
-
Notifications
You must be signed in to change notification settings - Fork 0
Closed
Description
When there's a Many-to-Many relationship, the Bulk returning into query, doesn't take into account the conflict resolution between an inserted and non inserted record.
Test Name: TestNestedManyToManyPreload3
Description:
type (
Level1 struct {
ID uint
Value string
}
Level2 struct {
ID uint
L2Value string
Level1s []*Level1 `gorm:"many2many:level1_level2;"`
}
Level3 struct {
ID uint
L3Value string
Level2ID sql.NullInt64
Level2 *Level2
}
)
if err := DB.AutoMigrate(&Level3{}, &Level2{}, &Level1{}); err != nil {
t.Error(err)
}
level1Zh := &Level1{Value: "zh"}
level1Ru := &Level1{Value: "ru"}
level1En := &Level1{Value: "en"}
level21 := &Level2{
L2Value: "Level2-1",
Level1s: []*Level1{level1Zh, level1Ru, level1En},
}
level22 := &Level2{
L2Value: "Level2-2",
Level1s: []*Level1{level1Zh, level1En},
}
wants := []*Level3{
{
L3Value: "Level3-1",
Level2: level21,
},
{
L3Value: "Level3-2",
Level2: level22,
},
{
L3Value: "Level3-3",
Level2: level21,
},
}
if err := DB.Save(wants[0]).Error; err != nil {
t.Error(err)
}
if err := DB.Save(wants[1]).Error; err != nil {
t.Error(err)
}
if err := DB.Save(wants[2]).Error; err != nil {
t.Error(err)
}
During the call DB.Save(wants[1]), the merge -query generated in invalid.
Metadata
Metadata
Assignees
Labels
No labels