如果我有2个(或更多)具有hasMany C
的域类,我如何确定是否添加了C
的实体?
class A {
String name
static hasMany = [cs: C]
class B {
String name
static hasMany = [cs: C]
}
class C {
String someProperty
}
// In CController add Action
//...
genericInstance.addToCs(cInstance)
我正在寻找更多可以处理的事件。 CController
用于A
和B
的内嵌表单,但我需要运行两个不同的流程,具体取决于添加到哪个域C
答案 0 :(得分:1)
您可以在班级addToCs
和A
中编写自己的B
方法/关闭。
class A {
String name
static hasMany = [cs: C]
def addToCs = {
// Do what you want with your value
cs.add(C)
}
}
请注意默认addToCs
中发生的情况:
DomainClassGrailsPlugin.groovy:289 @github
答案 1 :(得分:0)
为什么不将A和B合并到一个域中,因为它们具有相同的属性?
我建议这样做:
class AB {
char type
String name
static hasMany = [cs: C]
static constraints = {
type inList:['A','B'] //you can extend to 'C', 'D'... easily with this
}
}
class C {
String someProperty
}
在控制器中,你可以这样做:
abInstance.addToCs(cInstance)
def domainTag = abInstance.type
然后domainTag就是你想要的。