Grails 我可以确定何时添加域类吗?
如果我有两个(或更多)域类,其中包含许多Grails 我可以确定何时添加域类吗?,grails,gorm,grails-2.0,Grails,Gorm,Grails 2.0,如果我有两个(或更多)域类,其中包含许多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(cInsta
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
的域,既然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就是您想要的。您可以在类
A
和B
中编写自己的addToCs
方法/闭包
class A {
String name
static hasMany = [cs: C]
def addToCs = {
// Do what you want with your value
cs.add(C)
}
}
注意默认情况下发生的情况addToCs
:
>(CaseNo.Case.cs)中是否尝试编写自己的<代码> AdtoCtoS/<代码>方法/闭包在类<代码> C/<代码>?@ ISAMMOC中,如果您重新编写它,我会考虑您的答案。不,因为实际上,代码< > < <代码> >代码> b/COD>是两个完全不同的域。我的例子是伪代码。