Grails addTo *与数据库的结果

时间:2013-07-10 20:50:22

标签: grails gorm relationship

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

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

所以我希望它有效,但它没有:(

感谢您的回复!

2 个答案:

答案 0 :(得分:1)

Instrumento belongsTo ClasseInstrumento

表示ClasseInstrumento是父级,InstrumentoClasseInstrumento的子级(由ClasseInstrumento中的hasMany表示)

addTo * 用于父母对孩子的意思

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

classeInstrumento.addToInstrumentos(new Instrumento())

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

答案 1 :(得分:0)

instrumentoInstance = new Instrumento().addToClasseInstrumento(classeInstrumento)

classeInstrumento = classeInstrumentoService.getClasseInstrumento("value")

classeInstrumento .addToInstrumentos(instrumentoInstance) 

这是唯一可行的,或者您应该更改属于反之亦然,以防您错过了域名要求。