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所属先ClasseInstrumento

これはClasseInstrumentoが親でInstrumentoあり、 の子であるClasseInstrumentoことを意味します ( の hasMany で示されます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 に答える