gpt4 book ai didi

多种形式的 Grails GORM

转载 作者:行者123 更新时间:2023-12-02 08:47:06 24 4
gpt4 key购买 nike

通常我通过这种方式使用一对多关系:

class Study {
static hasMany = [ crfs : Crf ]
String name
...
}

class Crf {
String title
String info
...
}

我可以将这种关系扩展到其他域,例如:

static hasMany = [ crfs : Crf, crfb : CrfBlood ...]

但就我而言,我必须将 Study 域链接到其他 30 个域,甚至更多...(例如:CrfBlood、CrfMedical、crfFamily 等...)。

在我的案例中我应该使用什么域模型实现?
我想在我的项目中保留动态查找器的可用性。

更新 - 模型补充:

研究可以有一对多主题
研究可以有一对多Crfs(例如:CrfBlood、CrfMedical、crfFamily 等)。
一个受试者可以进行一对多的访问(例如:一个受试者可以进行多次血液测试)。

我想动态地将 Crfs 分配给研究,那么如何在我的域中使用 GORM(动态查找器)而不使用 static hasMany = [...] ?
也许,我可以实现一个服务来完成与 hasMany 所做的相同的事情?

最佳答案

您可以将所有 Crf 类型声明为 Crf 的子类,这样您与 Study 之间只有一种关系,但仍然能够添加不同的类型。

class Crf {
String title
String info
}

class CrfBlood extends Crf {
String detailBlood
}

class CrfMedical extends Crf {
String detailMedical
}

class Study {
String name
static hasMany = [ crfs: Crf ]
}

然后你可以这样做:

def s = new Study(...)
def c1 = new CrfBlood(...)
def c2 = new CrfMedical(...)
s.addToCrfs(c1)
s.addToCrfs(c2)

关于多种形式的 Grails GORM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5023430/

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