go-gorm / gorm

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

Delete() 在删除关联的Associate 时候的sql 执行顺序是不固定的? #7264

Open jaxsong opened 2 weeks ago

jaxsong commented 2 weeks ago

Your Question

多个嵌入的结构中,如果通过 clause.Associations 删除该model下全部的关联关系(包含一个 hasmany 和 一个many2many ) db.Select(clause.Associations).Delete(&TargetModel{}) 语句执行的删除sql 执行顺序不一致? 这个是预期的吗? 这会导致在使用sqlmock 这类工具的时候,偶发性的出现测试因为顺序问题不能通过。

The document you expected this should be explained

Expected answer

alex-guoba commented 2 weeks ago

看代码好像是, Relationships.Relations 存储的是map。 使用 * 或者 指定字段试试