gpt4 book ai didi

Grails域自引用递归调用

转载 作者:行者123 更新时间:2023-12-02 13:47:15 27 4
gpt4 key购买 nike

这是我的域类:

class Category {
String name

static hasMany = [subCategories: Category]
static belongsTo = [parentCategory: Category]

static mapping = {
subCategories joinTable: false, column: "parent_id"
}

static constraints = {
parentCategory nullable: true
}}

Category 是一个域类,对父类和子类列表都有自引用。

现在我想要这样的东西:给定一个父类别 ID,我想要一个属于这个 ID 的所有子类别的列表。 (注意:不是直系子代,是id下的所有子代)

例如,id 1 有 child 2 和 3,而 2 有 child 4 和 5。

鉴于我从客户那里得到了类别 ID 1,我想要一个 ID 为 2,3,4,5 的子类别

利用 Groovy,实现它的最佳代码是什么?

最佳答案

未经测试的代码,但可能会让您朝着正确的方向前进。可能有一种“更常规”的方式来做到这一点,但我不确定。

def findAllChildren(category, results = []) {
category.subCategories.each { child ->
results << child
findAllChildren(child, results)
}
}

def someOtherMethod() {
def allChildren = []
findAllChildren(parentCategory, allChildren)
}

关于Grails域自引用递归调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16735304/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com