Gorm1.25.7 同时使用joins与preload获取列表 报错 reflect: call of reflect.Value.Field on slice Value
原文英文,约100词,阅读约需1分钟。
📝
内容提要
当join与preload是同一个表时,使用gorm v1.25.7会触发错误。解决办法是将gorm回滚至v1.25.6版本。
🎯
关键要点
-
当join与preload是同一个表时,使用gorm v1.25.7会触发错误。
-
错误示例代码:db.where("type = 2").Joins("A").Preload("A.B").Find(&a)。
-
错误信息为:reflect: call of reflect.Value.Field on slice Value。
-
错误原因是使用了rel.Field.ReflectValueOf获取db.Statement.ReflectValue,但Find(&a)是slice类型,导致映射错误。
-
解决办法是将gorm回滚至v1.25.6版本。