在GORM的官方文档中未看到递归查询语句的写法,请问各位gopher,是否知道如何写一个语句支持递归查询?
如:在一个数据表中id 和pid,父对象的id为子对象的pid,如何通过一次查询查询出所有id=xx的子对象及孙对象一直到对后的叶节点?
有疑问加站长微信联系(非本文作者)

如:在一个数据表中id 和pid,父对象的id为子对象的pid,如何通过一次查询查询出所有id=xx的子对象及孙对象一直到对后的叶节点?
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
`单行代码`
用GO来处理: var menu []ArticleNode = db.Where("pid=? and ischeck=?", pid, 1).Order("sort DESC").Find(&menu).Error treeList := []*TreeList{} for , v := range menu { child := v.GetAllNodeNoCache(v.Id) node := &TreeList{ Id: v.Id, Title: v.Title,
Slug: v.Slug, Pid: v.Pid,
Ischeck: v.Ischeck, } node.Children = child treeList = append(treeList, node) } return treeList
看官方文档【预加载】相关内容
百度下with recursive,虽然可能不是用gorm的方式
感谢,现在就是用的go程序来实现迭代,没有发现gorm能支撑with recursive的语法。
预加载看过了,只能加载下一层子对象,没有递归到最底层
查到了一个git 上有讨论,不过好像没有合并到代码里,至少从文档里没看到with recursive的方法
@river1987 那你就自定义预加载,工具没提供就自己写呗