为什么这段代码不能正常工作?
def classeInstrumento = classeInstrumentoService.getClasseInstrumento("value")
def instrumentoInstance = new Instrumento().addToClasseInstrumento(classeInstrumento)
我在控制台上收到此错误消息:
No signature of method: package.Instrumento.addToClasseInstrumento() is applicable for argument types: (package.ClasseInstrumento) values: [package.ClasseInstrumento : 5]
这就是域名结构
class ClasseInstrumento {
static hasMany = instrumentos: Instrumento
}
class Instrumento {
ClasseInstrumento idClasseInstrumento
static hasMany = [ativoDefs: AtivoDef,
futuroDefs: FuturoDef,
operacaoDefs: OperacaoDef]
static belongsTo = [ClasseInstrumento]
}
所以我希望它有效,但它没有:(
感谢您的回复!
答案 0 :(得分:1)
Instrumento
belongsTo ClasseInstrumento
。
表示ClasseInstrumento
是父级,Instrumento
是ClasseInstrumento
的子级(由ClasseInstrumento
中的hasMany表示)
addTo * 用于父母对孩子的意思
" 将父项添加为对子项的foreign_key引用",这意味着
classeInstrumento.addToInstrumentos(new Instrumento())
将起作用,而不是您使用的前一种方法。
答案 1 :(得分:0)
instrumentoInstance = new Instrumento().addToClasseInstrumento(classeInstrumento)
classeInstrumento = classeInstrumentoService.getClasseInstrumento("value")
classeInstrumento .addToInstrumentos(instrumentoInstance)
这是唯一可行的,或者您应该更改属于反之亦然,以防您错过了域名要求。