она уже присутствует) и все ассоциации к ней в 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
}
Как я могу решить эту проблему?)
Ещё раз продублирую проблему, может кто сталкивался
Обсуждают сегодня