Запрос многих-многих ассоциаций без области (удалено)

# #mysql #go #go-gorm

Вопрос:

У меня есть модель gorm many2many, подобная этой, с пользовательской таблицей соединений :

 type Vehicle struct {
    gorm.Model
    Registration string 
    Users  []User `gorm:"many2many:vehicle_users` 
}

type VehicleUser struct {
    gorm.Model
    VehicleID uint
    UserID uint
}

type User struct {
    gorm.Model
    Vehicles []Vehicle  `gorm:"many2many:vehicle_users`
    Name     string
    OIB      int
}
 

Я хочу сделать запрос, чтобы все удаленные и восстановленные пользователи и их ассоциации были снова удалены и восстановлены.

(gorm 1.21.16) и MySQL 8.0

Когда я делаю такой запрос :

 u := User{}

db.Unscoped().Preload("Vehicles", func(db *gorm.DB) *gorm.DB {
        return db.Unscoped()
    }).Find(amp;u)
 

горм делает 3 SQL — запроса в фоновом режиме

 [52.918ms] [rows:4] SELECT * FROM `users`

[14.314ms] [rows:3] SELECT * FROM `vehicle_users` WHERE `vehicle_users`.`user_id` IN (1,2,3,4) AND `vehicle_users`.`deleted_at` IS NULL 

[0.576ms] [rows:2] SELECT * FROM `vehicles` WHERE `vehicles`.`id` IN (4,27)
 

Проблема заключается в vehicle_users том , что запрос в таблице соединений запрашивает только восстановленные ассоциации.
Кажется, я не могу найти, как изменить запрос в таблице соединений, чтобы удалить deleted_at предложение IS NULL.
Как правильно это сделать?