она уже присутствует) и все ассоциации к ней в GORM? У меня работает обновление таблицы, но ассоциации не обновляет, а добавляет,  уже третий час долбаюсь с проблемой, уже забрел на этот ишьюс https://github.com/go-gorm/gorm/issues/3487 и не могу понять как это сделать , получаю ошибку ERROR: duplicate key value violates unique constraint
                  
                  
                  
                  
                  
                  Вот модель
                  
                  
                  type THotel struct {
                  
                  
                    ID   int `gorm:"primaryKey"`
                  
                  
                    Code int `gorm:"uniqueIndex"`
                  
                  
                  
                  
                  
                    // Associations
                  
                  
                    Amenities []TAmenity `gorm:"foreignKey:HotelID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE"`
                  
                  
                  }
                  
                  
                  
                  
                  
                  type TAmenity struct {
                  
                  
                    ID      int `gorm:"primaryKey"`
                  
                  
                    HotelID int `gorm:"index"`
                  
                  
                  
                  
                  
                    // Data
                  
                  
                    Code int
                  
                  
                    Data string
                  
                  
                  }
                  
                  
                  
                  
                  
                  Вот код для обновление/добавление
                  
                  
                  Clauses(clause.OnConflict{
                  
                  
                    Columns:   []clause.Column{{Name: "code"}},
                  
                  
                    UpdateAll: true,
                  
                  
                  }).
                  
                  
                  CreateInBatches(&newHotels, batchSize).
                  
                  
                  Error
                  
                  
                  
                  
                  
                  Я уже пытался и хуки использовать BeforeCreate при этом выставляя HotelID в модели как uniqueIndex, а не просто как HotelID int `gorm:"index"`, но тогда возникает проблема другая: ON CONFLICT DO UPDATE command cannot affect row a second time (SQLSTATE 21000)
                  
                  
                  func (t *TAmenity) BeforeCreate(tx *gorm.DB) (err error) {
                  
                  
                    tx.Statement.AddClause(clause.OnConflict{
                  
                  
                      Columns:   []clause.Column{{Name: "hotel_id"}},
                  
                  
                      UpdateAll: true,
                  
                  
                    })
                  
                  
                    return nil
                  
                  
                  }
                  
                  
                  
                  
                  
                  Как я могу решить эту проблему?)
                  
                  
                
Ещё раз продублирую проблему, может кто сталкивался
Обсуждают сегодня