go-gorm / gorm

The fantastic ORM library for Golang, aims to be developer friendly
https://gorm.io
MIT License
36.91k stars 3.93k forks source link

Preloaded association goes away when replacing with Omit #7271

Open apuatcfbd opened 2 hours ago

apuatcfbd commented 2 hours ago

GORM Playground Link

The issue is so trivial that (I think) a playground link is not required here.

The issue: Preloaded association goes away when replacing association with Omit('associationName.*')

For ex:

user := new(model.User)

// get user with groups
database.DB.Preload("Groups").Find(&user, userId)

// then create new groups for the user
groups := new([]model.Group)
// ... add group  like model.Group{ID: 1}

//Replace groups to sync with the selection, Also make sure if non-existing groups are provided, not to create them.
database.DB.Model(&user).Omit("Groups.*").Association("Groups").Replace(groups)

// now user.groups is gone
fmt.Printf("%#v", user.groups)

// following is the output
[]model.Group{
  model.Group{
      ID:0x1, // has only the id
      Name:"", 
      Description:"", 
      //... all empty
  }
}
github-actions[bot] commented 2 hours ago

The issue has been automatically marked as stale as it missing playground pull request link, which is important to help others understand your issue effectively and make sure the issue hasn't been fixed on latest master, checkout https://github.com/go-gorm/playground for details. it will be closed in 30 days if no further activity occurs. if you are asking question, please use the Question template, most likely your question already answered https://github.com/go-gorm/gorm/issues or described in the document https://gorm.ioSearch Before Asking