0

为什么这段代码不能正常工作?

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]
}

所以我预计它会起作用,但它没有:(

感谢您的回复!

4

2 回答 2

1

Instrumento属于To ClasseInstrumento

这意味着ClasseInstrumento是父母并且InstrumentoClasseInstrumento(由 hasMany in 表示ClasseInstrumento)的孩子

addTo*用于从父母到孩子,这意味着

将父级添加为对子级的 foreign_key 引用”,这意味着

classeInstrumento.addToInstrumentos(new Instrumento())

将起作用,而不是您使用的前一种方法。

于 2013-07-10T21:33:27.327 回答
0
instrumentoInstance = new Instrumento().addToClasseInstrumento(classeInstrumento)

classeInstrumento = classeInstrumentoService.getClasseInstrumento("value")

classeInstrumento .addToInstrumentos(instrumentoInstance) 

这是唯一可能的,或者如果您错过了域要求,您应该更改您属于反之亦然。

于 2013-07-11T12:43:54.393 回答