Связь Gorm с транзакциями

# #go #go-gorm

#Вперед #го-горм

Вопрос:

Я пытаюсь выполнить транзакцию, которая требует некоторой предварительной загрузки, но, похоже, это не работает.

однако граф работает нормально.

Я попробовал следующее с предварительной загрузкой и ассоциацией, но, похоже, ни то, ни другое не работает. Возможно ли это сделать за одну транзакцию, или мне нужно перейти к более сырому sql?

 tx := db.Begin()  if tag != "" {  var tagModel TagModel  tx.Where(TagModel{Tag: tag}).First(amp;tagModel)   if tagModel.ID != 0 {  tx.Model(amp;tagModel).Association("BookModels").Find(amp;BookModel{})  count = tx.Model(amp;tagModel).Association("BookModels").Count()  }  } err = tx.Commit().Error  

структуры:

 type BookModel struct {  gorm.Model  Tags []TagModel `gorm:"many2many:book_tags"` }  
 type TagModel struct {  gorm.Model  Tag string `gorm:"unique_index"`  BookModels []BookModel `gorm:"many2many:book_tags"` }