Loading... > 参考issues: > [6834](https://github.com/go-gorm/gorm/issues/6834) # 触发错误 当join与preload是同一个表时会触发错误,例如: ```go var a []A db.where("type = 2").Joins("A").Preload("A.B").Find(&a) ``` 触发错误:**reflect: call of reflect.Value.Field on slice Value** # 触发原因 源码 [preload.go:124](https://github.com/go-gorm/gorm/blob/v1.25.7/callbacks/preload.go#L124) ```golang reflectValue := rel.Field.ReflectValueOf(db.Statement.Context, db.Statement.ReflectValue) ``` 使用`rel.Field.ReflectValueOf`获取`db.Statement.ReflectValue`对象`field`,但是前面`Find(&a)`是一个`slice`类型,因此会导致映射错误 # 解决办法(2024-03-04) 在go.mod 将 gorm 回滚至 `1.25.6` Last modification:March 4, 2024 © Allow specification reprint Support Appreciate the author AliPayWeChat Like 0 如果觉得我的文章对你有用,请随意赞赏
2 comments
你的文章让我学到了很多知识,非常感谢。
看的我热血沸腾啊