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版本。
➡️

继续阅读